List of usage examples for org.eclipse.jface.viewers TableViewer TableViewer
public TableViewer(Composite parent, int style)
From source file:com.bdaum.zoom.ui.internal.dialogs.EditMetaDialog.java
License:Open Source License
@SuppressWarnings("unused") private void createWatchedFolderGroup(CTabFolder folder) { final Composite wfComp = createTabPage(folder, Messages.EditMetaDialog_watched_folders, Messages.EditMetaDialog_watchedFolders_tooltip, 1, 0); final Composite composite = new Composite(wfComp, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); composite.setLayout(new GridLayout(2, false)); watchedFolderViewer = new TableViewer(composite, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION); setViewerLayout(watchedFolderViewer, 200, 1); watchedFolderViewer.getTable().setLinesVisible(true); watchedFolderViewer.getTable().setHeaderVisible(true); TableViewerColumn col0 = createColumn(Messages.EditMetaDialog_path, 240); col0.setLabelProvider(new ZColumnLabelProvider() { @Override//w ww . j a v a2s . c om public String getText(Object element) { if (element instanceof WatchedFolder) { String uri = ((WatchedFolder) element).getUri(); try { File file = new File(new URI(uri)); String path = file.getPath(); if (!path.endsWith(File.separator)) path += File.separator; if (!file.exists()) path += Messages.EditMetaDialog_offline; return path; } catch (URISyntaxException e) { // ignore } return uri; } return null; } }); TableViewerColumn col1 = createColumn(Messages.EditMetaDialog_volume, 80); col1.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof WatchedFolder) { String volume = ((WatchedFolder) element).getVolume(); return volume == null ? "" : volume; //$NON-NLS-1$ } return null; } }); TableViewerColumn col2 = createColumn(Messages.EditMetaDialog_type, 60); col2.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof WatchedFolder) { return ((WatchedFolder) element).getTransfer() ? Messages.EditMetaDialog_transfer : Messages.EditMetaDialog_storage; } return null; } }); TableViewerColumn col3 = createColumn(Messages.EditMetaDialog_recursive, 80); col3.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof WatchedFolder) return ((WatchedFolder) element).getRecursive() ? Messages.EditMetaDialog_c_yes : Messages.EditMetaDialog_c_no; return null; } }); TableViewerColumn col4 = createColumn(Messages.EditMetaDialog_last_observation, 120); col4.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof WatchedFolder) return df.format(new Date(((WatchedFolder) element).getLastObservation())); return null; } }); TableViewerColumn col5 = createColumn(Messages.EditMetaDialog_file_filter, 400); col5.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof WatchedFolder) { WatchedFolder wf = (WatchedFolder) element; if (!wf.getTransfer()) return UiUtilities.getFilters(wf); StringBuilder sb = new StringBuilder(); int skipPolicy = wf.getSkipPolicy(); if (skipPolicy < 0 && skipPolicy >= ImportFileSelectionPage.SKIPPOLICIES.length) skipPolicy = 0; sb.append(ImportFileSelectionPage.SKIPPOLICIES[skipPolicy]); sb.append(" | ").append(wf.getTargetDir()); //$NON-NLS-1$ return sb.toString(); } return null; } }); watchedFolderViewer.setContentProvider(ArrayContentProvider.getInstance()); new SortColumnManager(watchedFolderViewer, new int[] { SWT.UP, SWT.UP, SWT.UP, SWT.NONE, SWT.UP, SWT.NONE }, 0); watchedFolderViewer.setComparator(new ZViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { Table table = watchedFolderViewer.getTable(); TableColumn sortColumn = table.getSortColumn(); if (sortColumn == table.getColumn(4)) { int sortDirection = table.getSortDirection(); int a = (sortDirection & SWT.DOWN) != 0 ? 1 : -1; long t1 = ((WatchedFolder) e1).getLastObservation(); long t2 = ((WatchedFolder) e2).getLastObservation(); return t1 == t2 ? 0 : t1 < t2 ? a : -a; } return super.compare(viewer, e1, e2); } }); watchedFolderViewer.getControl().addKeyListener(keyListener); watchedFolderViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateFolderButtons(); if (cntrlDwn) { if (editFolderButton.isEnabled()) editWatchedFolder(); cntrlDwn = false; } } }); watchedFolderViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { if (!cntrlDwn && editFolderButton.isEnabled()) editWatchedFolder(); } }); Composite buttonComp = new Composite(composite, SWT.NONE); buttonComp.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, true)); buttonComp.setLayout(new GridLayout()); addFolderButton = new Button(buttonComp, SWT.PUSH); addFolderButton.setText(Messages.EditMetaDialog_add); addFolderButton.setToolTipText(Messages.EditMetaDialog_add_watched_folder); addFolderButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { WatchedFolder folder = new WatchedFolderImpl(null, null, 0L, true, null, false, null, false, 0, null, 2, null, null, Constants.FILESOURCE_DIGITAL_CAMERA, false); WatchedFolderWizard wizard = new WatchedFolderWizard(true); WizardDialog wizardDialog = new WizardDialog(getShell(), wizard); wizard.init(null, new StructuredSelection(folder)); if (wizardDialog.open() == WizardDialog.OK) { try { folder.setStringId(Utilities.computeWatchedFolderId(new File(new URI(folder.getUri())), folder.getVolume())); watchedFolders.add(folder); watchedFolderViewer.setInput(watchedFolders); } catch (URISyntaxException e1) { // should never happend } } } }); editFolderButton = new Button(buttonComp, SWT.PUSH); editFolderButton.setText(Messages.EditMetaDialog_edit_watched); editFolderButton.setToolTipText(Messages.EditMetaDialog_edit_watched_tooltip); editFolderButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { editWatchedFolder(); } }); removeFolderButton = new Button(buttonComp, SWT.PUSH); removeFolderButton.setText(Messages.EditMetaDialog_remove); removeFolderButton.setToolTipText(Messages.EditMetaDialog_remove_watched_folder); removeFolderButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { WatchedFolderImpl firstElement = (WatchedFolderImpl) watchedFolderViewer.getStructuredSelection() .getFirstElement(); watchedFolders.remove(firstElement); watchedFolderViewer.remove(firstElement); } }); categoryRemoveButton.setEnabled(!readonly); Composite optionComp = new Composite(buttonComp, SWT.NONE); optionComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); optionComp.setLayout(new GridLayout(2, false)); new Label(optionComp, SWT.NONE).setText(Messages.EditMetaDialog_latency); latencyField = new NumericControl(optionComp, SWT.NONE); latencyField.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); latencyField.setMaximum(60); latencyField.setMinimum(1); latencyField.setIncrement(1); pauseButton = WidgetFactory.createCheckButton(optionComp, Messages.EditMetaDialog_paused, new GridData(SWT.BEGINNING, SWT.END, true, false, 2, 1)); // Footer bgimportField = WidgetFactory.createCheckButton(composite, Messages.EditMetaDialog_show_bg_imports, new GridData(SWT.BEGINNING, SWT.END, true, false, 2, 1)); autoWatchButton = WidgetFactory.createCheckButton(composite, Messages.EditMetaDialog_automatically_add_imported_folders, new GridData(SWT.BEGINNING, SWT.END, true, false, 2, 1)); }
From source file:com.bdaum.zoom.ui.internal.dialogs.EditMetaDialog.java
License:Open Source License
@SuppressWarnings("unused") private void createKeywordsGroup(final CTabFolder folder) { final Composite kwComp = createTabPage(folder, Messages.EditMetaDialog_keywords, Messages.EditMetaDialog_keyword_tooltip, 2, 0); CGroup kwGroup = new CGroup(kwComp, SWT.NONE); kwGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); kwGroup.setLayout(new GridLayout(2, false)); kwGroup.setText(Messages.EditMetaDialog_cat_keywords); Label catKwLabel = new Label(kwGroup, SWT.NONE); catKwLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); catKwLabel.setFont(JFaceResources.getFontRegistry().get(UiConstants.SELECTIONFONT)); flatKeywordGroup = new FlatGroup(kwGroup, SWT.NONE, settings, "hierarchicalKeywords"); //$NON-NLS-1$ flatKeywordGroup.setLayoutData(new GridData(SWT.END, SWT.BEGINNING, false, false)); flatKeywordGroup.addListener(new Listener() { @Override//ww w.java2 s . co m public void handleEvent(Event event) { keywordViewer.setInput(keywords); keywordViewer.expandAll(); keywordExpandCollapseGroup.setVisible(!flatKeywordGroup.isFlat()); } }); Composite viewerGroup = new Composite(kwGroup, SWT.NONE); viewerGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); GridLayout layout = new GridLayout(2, false); layout.marginHeight = layout.marginWidth = 0; viewerGroup.setLayout(layout); final FilterField filterField = new FilterField(viewerGroup); filterField.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { keywordViewer.setInput(keywords); keywordViewer.expandAll(); } }); final CheckboxButton excludeButton = WidgetFactory.createCheckButton(viewerGroup, Messages.KeywordGroup_exclude_geographic, new GridData(SWT.END, SWT.CENTER, true, false)); excludeButton.addListener(new Listener() { @Override public void handleEvent(Event event) { excludeGeographic = excludeButton.getSelection(); Object[] expandedElements = keywordViewer.getExpandedElements(); keywordViewer.setInput(keywords); keywordViewer.setExpandedElements(expandedElements); } }); keywordExpandCollapseGroup = new ExpandCollapseGroup(viewerGroup, SWT.NONE, new GridData(SWT.END, SWT.BEGINNING, true, false, 2, 1)); keywordViewer = new TreeViewer(viewerGroup, SWT.V_SCROLL | SWT.BORDER); keywordExpandCollapseGroup.setViewer(keywordViewer); keywordExpandCollapseGroup.setVisible(!flatKeywordGroup.isFlat()); setViewerLayout(keywordViewer, 220, 2); keywordViewer.setContentProvider(new KeywordContentProvider()); keywordViewer.setLabelProvider(new KeywordLabelProvider(getVocabManager(), null)); ZColumnViewerToolTipSupport.enableFor(keywordViewer); keywordViewer.setComparator(ZViewerComparator.INSTANCE); UiUtilities.installDoubleClickExpansion(keywordViewer); keywordViewer.setFilters(new ViewerFilter[] { new ViewerFilter() { @Override public boolean select(Viewer aViewer, Object parentElement, Object element) { WildCardFilter filter = filterField.getFilter(); return filter == null || element instanceof Character || filter.accept((String) element); } } }); keywordViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateButtons(); } }); configureKeywordLink = new CLink(viewerGroup, SWT.NONE); configureKeywordLink.setText(Messages.EditMetaDialog_configure_keyword_filter); configureKeywordLink.addListener(new Listener() { @Override public void handleEvent(Event event) { PreferencesUtil.createPreferenceDialogOn(getShell(), KeyPreferencePage.ID, new String[0], null) .open(); } }); final Composite buttonGroup = new Composite(kwGroup, SWT.NONE); buttonGroup.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false)); buttonGroup.setLayout(new GridLayout()); keywordAddButton = createPushButton(buttonGroup, Messages.EditMetaDialog_add, Messages.EditMetaDialog_add_keyword_tooltip); keywordAddButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { ZInputDialog dialog = createKeywordDialog(Messages.EditMetaDialog_add_keyword, Messages.EditMetaDialog_enter_a_new_keyword, ""); //$NON-NLS-1$ if (dialog.open() == Window.OK) addKeywordToViewer(keywordViewer, dialog.getValue(), true); } }); keywordModifyButton = createPushButton(buttonGroup, Messages.EditMetaDialog_edit, Messages.EditMetaDialog_modify_keyword_tooltip); keywordModifyButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { editKeyword(); } }); keywordViewer.getControl().addKeyListener(keyListener); keywordViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(final SelectionChangedEvent event) { updateButtons(); if (cntrlDwn) { if (keywordModifyButton.isEnabled()) editKeyword(); cntrlDwn = false; } } }); keywordReplaceButton = createPushButton(buttonGroup, Messages.EditMetaDialog_replace, Messages.EditMetaDialog_replace_tooltip); keywordReplaceButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { String kw = (String) ((IStructuredSelection) keywordViewer.getSelection()).getFirstElement(); if (kw != null) { KeywordDialog dialog = new KeywordDialog(getShell(), NLS.bind(Messages.EditMetaDialog_replace_keyword, kw), null, keywords, null); if (dialog.open() == Window.OK) { BagChange<String> result = dialog.getResult(); boolean found = false; Set<String> added = result.getAdded(); if (added != null) for (String s : added) if (kw.equals(s)) { found = true; break; } if (!found) removeKeywordFromViewer(keywordViewer, kw); Set<String> addedKeywords = result.getAdded(); String[] replacement = addedKeywords.toArray(new String[addedKeywords.size()]); int i = 0; for (String k : replacement) addKeywordToViewer(keywordViewer, k, i++ == 0); todo.add(new ReplaceKeywordOperation(kw, replacement)); } } } }); keywordDeleteButton = createPushButton(buttonGroup, Messages.EditMetaDialog_delete_keyword, Messages.EditMetaDialog_delete_keyword_tooltip); keywordDeleteButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { BusyIndicator.showWhile(keywordDeleteButton.getDisplay(), () -> { IStructuredSelection selection = (IStructuredSelection) keywordViewer.getSelection(); String kw = (String) selection.getFirstElement(); if (kw != null) { List<AssetImpl> set = dbManager.obtainObjects(AssetImpl.class, QueryField.IPTC_KEYWORDS.getKey(), kw, QueryField.EQUALS); removeKeywordFromViewer(keywordViewer, kw); if (!set.isEmpty()) { KeywordDeleteDialog dialog = new KeywordDeleteDialog(getShell(), kw, set); if (dialog.open() != Window.OK) { keywords.add(kw); return; } if (dialog.getPolicy() == KeywordDeleteDialog.REMOVE) todo.add(new ManageKeywordsOperation( new BagChange<String>(null, null, Collections.singleton(kw), null), set)); } } }); } }); keywordShowButton = createPushButton(buttonGroup, Messages.EditMetaDialog_show_images, Messages.EditMetaDialog_show_keyword_tooltip); keywordShowButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) keywordViewer.getSelection(); String kw = (String) selection.getFirstElement(); if (kw != null) { SmartCollectionImpl sm = new SmartCollectionImpl(kw, false, false, true, false, null, 0, null, 0, null, Constants.INHERIT_LABEL, null, 0, null); sm.addCriterion(new CriterionImpl(QueryField.IPTC_KEYWORDS.getKey(), null, kw, QueryField.EQUALS, false)); sm.addSortCriterion(new SortCriterionImpl(QueryField.IPTC_DATECREATED.getKey(), null, true)); Ui.getUi().getNavigationHistory(workbenchPage.getWorkbenchWindow()) .postSelection(new StructuredSelection(sm)); close(); } } }); new Label(buttonGroup, SWT.SEPARATOR | SWT.HORIZONTAL); keywordCollectButton = createPushButton(buttonGroup, Messages.EditMetaDialog_collect, Messages.EditMetaDialog_collect_keyword_tooltip); keywordCollectButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { KeywordCollectDialog dialog = new KeywordCollectDialog(getShell(), keywords); if (dialog.open() == Window.OK) { int i = 0; for (String kw : dialog.getToAdd()) addKeywordToViewer(keywordViewer, kw, i++ == 0); for (String kw : dialog.getToRemove()) removeKeywordFromViewer(keywordViewer, kw); } } }); keywordLoadButton = createPushButton(buttonGroup, Messages.EditMetaDialog_load, NLS.bind(Messages.EditMetaDialog_load_keyword_tooltip, Constants.KEYWORDFILEEXTENSION)); keywordLoadButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent ev) { FileDialog dialog = new FileDialog(getShell(), SWT.OPEN); dialog.setFilterExtensions(KEYWORDEXTENSIONS); dialog.setFilterNames( new String[] { Constants.APPNAME + Messages.EditMetaDialog_zoom_keyword_file + Constants.KEYWORDFILEEXTENSION + ')', Messages.EditMetaDialog_all_files }); String filename = dialog.open(); if (filename != null) { try (InputStream in = new BufferedInputStream(new FileInputStream(filename))) { List<String> list = Utilities.loadKeywords(in); keywords.clear(); keywords.addAll(list); } catch (IOException e) { // ignore } keywordViewer.setInput(keywords); keywordViewer.expandAll(); } } }); keywordSaveButton = createPushButton(buttonGroup, Messages.EditMetaDialog_save, NLS.bind(Messages.EditMetaDialog_save_keyword_tooltip, Constants.KEYWORDFILEEXTENSION)); keywordSaveButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { FileDialog dialog = new FileDialog(getShell(), SWT.SAVE); dialog.setFilterExtensions(KEYWORDEXTENSIONS); dialog.setFilterNames( new String[] { Constants.APPNAME + Messages.EditMetaDialog_zoom_keyword_file + Constants.KEYWORDFILEEXTENSION + ")", //$NON-NLS-1$ Messages.EditMetaDialog_all_files }); dialog.setFileName("*" + Constants.KEYWORDFILEEXTENSION); //$NON-NLS-1$ dialog.setOverwrite(true); String filename = dialog.open(); if (filename != null) Utilities.saveKeywords(keywords, new File(filename)); } }); addToKeywordsButton = WidgetFactory.createCheckButton(kwGroup, Messages.EditMetaDialog_add_to_keywords, new GridData(SWT.BEGINNING, SWT.END, true, false, 2, 1)); CGroup vocabGroup = new CGroup(kwComp, SWT.NONE); vocabGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); vocabGroup.setLayout(new GridLayout(2, false)); vocabGroup.setText(Messages.EditMetaDialog_controlled_vocabs); Composite vocabViewerGroup = new Composite(vocabGroup, SWT.NONE); GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true); layoutData.verticalIndent = 20; vocabViewerGroup.setLayoutData(layoutData); vocabViewerGroup.setLayout(new GridLayout(2, false)); vocabViewer = new TableViewer(vocabViewerGroup, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); setViewerLayout(vocabViewer, 150, 1); TableViewerColumn col1 = new TableViewerColumn(vocabViewer, SWT.NONE); col1.getColumn().setWidth(300); col1.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { return element.toString(); } @Override public Image getImage(Object element) { if (element instanceof String && !new File((String) element).exists()) return Icons.error.getImage(); return null; } @Override public String getToolTipText(Object element) { if (element instanceof String && UiActivator.getDefault().getShowHover()) { File file = new File((String) element); if (!file.exists()) return Messages.EditMetaDialog_file_does_not_exist; } return super.getToolTipText(element); } @Override public Image getToolTipImage(Object element) { return getImage(element); } }); vocabViewer.setContentProvider(ArrayContentProvider.getInstance()); vocabViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { updateButtons(); } }); vocabViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { viewVocab(); } }); ColumnViewerToolTipSupport.enableFor(vocabViewer); Composite vocabButtonGroup = new Composite(vocabViewerGroup, SWT.NONE); vocabButtonGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); vocabButtonGroup.setLayout(new GridLayout()); vocabAddButton = createPushButton(vocabButtonGroup, Messages.EditMetaDialog_add, Messages.EditMetaDialog_add_vocab); vocabAddButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { FileDialog dialog = new FileDialog(getShell(), SWT.OPEN); dialog.setText(Messages.EditMetaDialog_select_vocab); dialog.setFilterExtensions(KEYWORDEXTENSIONS); dialog.setFilterNames( new String[] { Constants.APPNAME + Messages.EditMetaDialog_zoom_keyword_file + Constants.KEYWORDFILEEXTENSION + ')', Messages.EditMetaDialog_all_files }); String file = dialog.open(); if (file != null) { boolean found = false; for (String s : vocabularies) if (s.equals(file)) { found = true; break; } if (!found) { vocabularies.add(file); vocabViewer.add(file); } vocabViewer.setSelection(new StructuredSelection(file), true); if (vocabManager != null) vocabManager.reset(vocabularies); updateKeywordViewer(); } } }); vocabRemoveButton = createPushButton(vocabButtonGroup, Messages.EditMetaDialog_remove, Messages.EditMetaDialog_remove_vocab); vocabRemoveButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { @SuppressWarnings("unchecked") Iterator<Object> it = vocabViewer.getStructuredSelection().iterator(); while (it.hasNext()) { Object file = it.next(); vocabularies.remove(file); vocabViewer.remove(file); } if (vocabManager != null) vocabManager.reset(vocabularies); updateKeywordViewer(); } }); vocabViewButton = createPushButton(vocabButtonGroup, Messages.EditMetaDialog_view_vocab, Messages.EditMetaDialog_view_vocab_tooltip); vocabViewButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { viewVocab(); } }); new Label(vocabButtonGroup, SWT.SEPARATOR | SWT.HORIZONTAL); vocabEnforceButton = createPushButton(vocabButtonGroup, Messages.EditMetaDialog_enforce, Messages.EditMetaDialog_enforce_tooltip); vocabEnforceButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { List<String[]> changes = new ArrayList<>(); VocabManager vManager = getVocabManager(); for (String kw : keywords) { String mapped = vManager.getVocab(kw); if (!kw.equals(mapped)) changes.add(new String[] { kw, mapped }); } VocabEnforceDialog dialog = new VocabEnforceDialog(getShell(), changes); if (dialog.open() == VocabEnforceDialog.OK) { BusyIndicator.showWhile(getShell().getDisplay(), () -> { int policy = dialog.getPolicy(); for (String[] change : dialog.getChanges()) { String kw = change[0]; keywords.remove(kw); if (change[1] != null) { keywords.add(change[1]); if (policy == KeywordDeleteDialog.REMOVE) todo.add(new ReplaceKeywordOperation(kw, new String[] { change[1] })); } else if (policy == KeywordDeleteDialog.REMOVE) todo.add(new ManageKeywordsOperation( new BagChange<String>(null, null, Collections.singleton(kw), change), null)); updateKeywordViewer(); } }); } } }); }
From source file:com.bdaum.zoom.ui.internal.dialogs.EditStructDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite area = (Composite) super.createDialogArea(parent); Composite comp = new Composite(area, SWT.NONE); comp.setLayoutData(new GridData(GridData.FILL_BOTH)); comp.setLayout(new GridLayout()); viewer = new TableViewer(parent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER); Table table = viewer.getTable();/*from w w w. java2 s . co m*/ table.setLayoutData(new GridData(GridData.FILL_BOTH)); table.setLinesVisible(true); table.setHeaderVisible(true); TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.NONE); col1.getColumn().setWidth(200); col1.getColumn().setText(Messages.EditStructDialog_name); col1.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof QueryField) { QueryField qf = (QueryField) element; return !readonly && qf.isEditable((Asset) null) ? Format.EDITABLEINDICATOR + qf.getLabel() : qf.getLabel(); // $NON-NLS-1$ } return null; } }); TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.NONE); col2.getColumn().setWidth(400); col2.getColumn().setText(Messages.EditStructDialog_value); col2.setLabelProvider(new ValueColumnLabelProvider()); col2.setEditingSupport(new ViewEditingSupport(viewer)); viewer.setContentProvider(new ViewContentProvider()); // viewer.setComparator(new ViewComparator()); if (fields != null) viewer.setFilters(new ViewerFilter[] { new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { for (QueryField qfield : fields) { if (qfield == element) return true; } return false; } } }); viewer.setInput(qfield); return area; }
From source file:com.bdaum.zoom.ui.internal.dialogs.FtpAccountSelectionDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite area = (Composite) super.createDialogArea(parent); Composite composite = new Composite(area, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); composite.setLayout(new GridLayout(1, false)); ftpViewer = new TableViewer(composite, SWT.V_SCROLL | SWT.SINGLE); ftpViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); ftpViewer.setContentProvider(ArrayContentProvider.getInstance()); ftpViewer.setLabelProvider(new ZColumnLabelProvider() { @Override/*from ww w . j ava2 s . c om*/ public String getText(Object element) { if (element instanceof FtpAccount) return ((FtpAccount) element).getName(); return element.toString(); } }); ftpViewer.setComparator(ZViewerComparator.INSTANCE); ftpViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateButtons(); } }); List<FtpAccount> ftpAccounts = FtpAccount.getAllAccounts(); ftpViewer.setInput(ftpAccounts); return area; }
From source file:com.bdaum.zoom.ui.internal.dialogs.MediaDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite area = (Composite) super.createDialogArea(parent); Composite composite = new Composite(area, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); composite.setLayout(new GridLayout(1, false)); viewer = new TableViewer(composite, SWT.FULL_SELECTION | SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER); viewer.getTable().setLinesVisible(true); viewer.getTable().setHeaderVisible(true); viewer.getTable().setLayoutData(new GridData(780, 250)); TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.NONE); col1.getColumn().setWidth(180);// w w w.ja va 2s . c o m col1.getColumn().setText(Messages.MediaDialog_volume_name); col1.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof LastDeviceImport) return ((LastDeviceImport) element).getVolume(); return element.toString(); } }); TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.NONE); col2.getColumn().setWidth(140); col2.getColumn().setText(Messages.MediaDialog_owner); col2.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof LastDeviceImport) return ((LastDeviceImport) element).getOwner(); return element.toString(); } }); col2.setEditingSupport(new EditingSupport(viewer) { @Override protected void setValue(Object element, Object value) { if (element instanceof LastDeviceImport && value instanceof String) { ((LastDeviceImport) element).setOwner((String) value); viewer.update(element, null); } } @Override protected Object getValue(Object element) { if (element instanceof LastDeviceImport) return ((LastDeviceImport) element).getOwner(); return ""; //$NON-NLS-1$ } @Override protected CellEditor getCellEditor(Object element) { return new TextCellEditor(viewer.getTable()); } @Override protected boolean canEdit(Object element) { return true; } }); TableViewerColumn col3 = new TableViewerColumn(viewer, SWT.NONE); col3.getColumn().setWidth(140); col3.getColumn().setText(Messages.MediaDialog_last_import); col3.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof LastDeviceImport) { long timestamp = ((LastDeviceImport) element).getTimestamp(); return timestamp == 0L ? " - " : sdf.format(new Date(timestamp)); //$NON-NLS-1$ } return element.toString(); } }); col3.setEditingSupport(new EditingSupport(viewer) { @Override protected void setValue(Object element, Object value) { if (element instanceof LastDeviceImport && value instanceof String) { try { ((LastDeviceImport) element).setTimestamp(sdf.parse((String) value).getTime()); viewer.update(element, null); } catch (ParseException e) { // do nothing } } } @Override protected Object getValue(Object element) { if (element instanceof LastDeviceImport) return sdf.format(new Date(((LastDeviceImport) element).getTimestamp())); return ""; //$NON-NLS-1$ } @Override protected CellEditor getCellEditor(Object element) { TextCellEditor editor = new TextCellEditor(viewer.getTable()); editor.setValidator(new ICellEditorValidator() { public String isValid(Object value) { if (value instanceof String) { try { sdf.parse((String) value); setErrorMessage(null); } catch (ParseException e) { String errorMessage = NLS.bind(Messages.MediaDialog_bad_date_format, Messages.MediaDialog_import_date_mask); setErrorMessage(errorMessage); return errorMessage; } } return null; } }); return editor; } @Override protected boolean canEdit(Object element) { return true; } }); TableViewerColumn col4 = new TableViewerColumn(viewer, SWT.NONE); col4.getColumn().setWidth(300); col4.getColumn().setText(Messages.MediaDialog_comments); col4.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof LastDeviceImport) return ((LastDeviceImport) element).getDescription(); return element.toString(); } }); col4.setEditingSupport(new EditingSupport(viewer) { @Override protected void setValue(Object element, Object value) { if (element instanceof LastDeviceImport && value instanceof String) { ((LastDeviceImport) element).setDescription((String) value); viewer.update(element, null); } } @Override protected Object getValue(Object element) { if (element instanceof LastDeviceImport) return ((LastDeviceImport) element).getDescription(); return ""; //$NON-NLS-1$ } @Override protected CellEditor getCellEditor(Object element) { return new TextCellEditor(viewer.getTable()); } @Override protected boolean canEdit(Object element) { return true; } }); viewer.setContentProvider(ArrayContentProvider.getInstance()); viewer.setComparator(ZViewerComparator.INSTANCE); viewer.setFilters(new ViewerFilter[] { new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { if (element instanceof LastDeviceImport) { String volume = ((LastDeviceImport) element).getVolume(); return volume.indexOf('/') < 0 && volume.indexOf('\\') < 0; } return false; } } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateButtons(); } }); return area; }
From source file:com.bdaum.zoom.ui.internal.dialogs.MigrateDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite area = (Composite) super.createDialogArea(parent); Composite composite = new Composite(area, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); composite.setLayout(new GridLayout(1, false)); CGroup fileGroup = new CGroup(composite, SWT.NONE); fileGroup.setText(Messages.MigrateDialog_save_as); fileGroup.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, true)); fileGroup.setLayout(new GridLayout()); String filename = catFile.getName(); String migrated = "migrated_" + filename; //$NON-NLS-1$ String parentFile = catFile.getParent(); File migratedFile = new File(parentFile, migrated); fileEditor = new FileEditor(fileGroup, SWT.SAVE, "", false, //$NON-NLS-1$ new String[] { "*" + BatchConstants.CATEXTENSION }, //$NON-NLS-1$ new String[] { "ZoRaPD Catalog (*" //$NON-NLS-1$ + BatchConstants.CATEXTENSION + ")" }, //$NON-NLS-1$ parentFile, migratedFile.getPath(), false, getDialogSettings(UiActivator.getDefault(), SETTINGSID)); CGroup tableGroup = new CGroup(composite, SWT.NONE); tableGroup.setText(Messages.MigrateDialog_transformation); tableGroup.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, true)); tableGroup.setLayout(new GridLayout()); new Label(tableGroup, SWT.NONE).setText(Messages.MigrateDialog_file_separator_policy); fileSeparatorCombo = new Combo(tableGroup, SWT.DROP_DOWN | SWT.READ_ONLY); fileSeparatorCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); fileSeparatorCombo.setItems(new String[] { Messages.MigrateDialog_do_nothing, Messages.MigrateDialog_toSlash, Messages.MigrateDialog_toBackslash }); fileSeparatorCombo.select(fileSepearatorPolicy); new Label(tableGroup, SWT.NONE).setText(Messages.MigrateDialog_rules); new Label(tableGroup, SWT.NONE).setText(Messages.MigrateDialog_rules_explanation); Composite tableComp = new Composite(tableGroup, SWT.NONE); tableComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); GridLayout layout = new GridLayout(2, false); layout.horizontalSpacing = layout.verticalSpacing = 0; tableComp.setLayout(layout);/*from w ww .ja va 2 s .c o m*/ viewer = new TableViewer(tableComp, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL | SWT.FULL_SELECTION); viewer.getTable().setLinesVisible(true); viewer.getTable().setHeaderVisible(true); GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true); layoutData.heightHint = 300; viewer.getTable().setLayoutData(layoutData); final TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.NONE); col1.getColumn().setWidth(350); col1.getColumn().setText(Messages.MigrateDialog_source_pattern); col1.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof MigrationRule) return ((MigrationRule) element).getSourcePattern(); return element.toString(); } }); final TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.NONE); col2.getColumn().setWidth(220); col2.getColumn().setText(Messages.MigrateDialog_target_pattern); col2.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof MigrationRule) return ((MigrationRule) element).getTargetPattern(); return super.getText(element); } }); final TableViewerColumn col3 = new TableViewerColumn(viewer, SWT.NONE); col3.getColumn().setWidth(100); col3.getColumn().setText(Messages.MigrateDialog_target_volume); col3.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof MigrationRule) return ((MigrationRule) element).getTargetVolume(); return element.toString(); } }); viewer.setContentProvider(ArrayContentProvider.getInstance()); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateButtons(); } }); Composite buttonComp = new Composite(tableComp, SWT.NONE); buttonComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); buttonComp.setLayout(new GridLayout(1, false)); Button addPatternButton = new Button(buttonComp, SWT.PUSH); addPatternButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); addPatternButton.setText(Messages.MigrateDialog_add_pattern); addPatternButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { RegExDialog dialog = new RegExDialog(getShell(), null, null, false, fileSeparatorCombo.getSelectionIndex(), -1); if (dialog.open() == RegExDialog.OK) { MigrationRule result = dialog.getResult(); rules.add(result); viewer.add(result); viewer.setSelection(new StructuredSelection(result)); updateButtons(); dirty = true; } } }); Button addFolderButton = new Button(buttonComp, SWT.PUSH); addFolderButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { DirectoryDialog dirDialog = new DirectoryDialog(getShell()); dirDialog.setText(Messages.MigrateDialog_select_folder); String dir = dirDialog.open(); if (dir != null) { if (!dir.endsWith(File.separator)) dir += File.separator; if (Constants.WIN32) { int i = dir.indexOf(':'); if (i == 1) { String volume = Core.getCore().getVolumeManager().getVolumeForFile(new File(dir)); if (volume != null) dir = volume + dir.substring(1); } } char filesep; fileSepearatorPolicy = fileSeparatorCombo.getSelectionIndex(); switch (fileSepearatorPolicy) { case 1: filesep = '/'; break; case 2: filesep = '\\'; break; default: filesep = File.separatorChar; break; } String sourcePattern = dir + "(.*)"; //$NON-NLS-1$ MigrationRule rule = new MigrationRuleImpl(sourcePattern.replaceAll("\\\\", "\\\\\\\\"), //$NON-NLS-1$ //$NON-NLS-2$ Messages.MigrateDialog_target_folder + filesep + "$1", null); //$NON-NLS-1$ RegExDialog regexDialog = new RegExDialog(getShell(), rule, dir, true, fileSepearatorPolicy, Messages.MigrateDialog_target_folder.length()); if (regexDialog.open() == RegExDialog.OK) { MigrationRule result = regexDialog.getResult(); rules.add(result); viewer.add(result); viewer.setSelection(new StructuredSelection(result)); updateButtons(); dirty = true; } } } }); addFolderButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); addFolderButton.setText(Messages.MigrateDialog_add_folder); editPatternButton = new Button(buttonComp, SWT.PUSH); editPatternButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); editPatternButton.setText(Messages.MigrateDialog_edit_pattern); editPatternButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { MigrationRule policy = (MigrationRule) viewer.getStructuredSelection().getFirstElement(); RegExDialog regexDialog = new RegExDialog(getShell(), policy, null, false, fileSeparatorCombo.getSelectionIndex(), -1); if (regexDialog.open() == RegExDialog.OK) { MigrationRule result = regexDialog.getResult(); policy.setSourcePattern(result.getSourcePattern()); policy.setTargetPattern(result.getTargetPattern()); viewer.update(policy, null); updateButtons(); dirty = true; } } }); removePatternButton = new Button(buttonComp, SWT.PUSH); removePatternButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); removePatternButton.setText(Messages.MigrateDialog_remove_pattern); removePatternButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { Object policy = viewer.getStructuredSelection().getFirstElement(); rules.remove(policy); viewer.remove(policy); updateButtons(); dirty = true; } }); Label sep = new Label(buttonComp, SWT.SEPARATOR | SWT.HORIZONTAL); sep.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); upButton = new Button(buttonComp, SWT.PUSH); upButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); upButton.setText(Messages.MigrateDialog_up); upButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { MigrationRule policy = (MigrationRule) viewer.getStructuredSelection().getFirstElement(); int i = rules.indexOf(policy); if (i > 0) { rules.remove(i); rules.add(i - 1, policy); viewer.setInput(rules); viewer.setSelection(new StructuredSelection(policy)); updateButtons(); } } }); downButton = new Button(buttonComp, SWT.PUSH); downButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); downButton.setText(Messages.MigrateDialog_down); downButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { MigrationRule policy = (MigrationRule) viewer.getStructuredSelection().getFirstElement(); int i = rules.indexOf(policy); if (i < rules.size() - 1) { rules.remove(i); rules.add(i + 1, policy); viewer.setInput(rules); viewer.setSelection(new StructuredSelection(policy)); updateButtons(); } } }); return area; }
From source file:com.bdaum.zoom.ui.internal.dialogs.PurgeEmptyDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite area = (Composite) super.createDialogArea(parent); Composite composite = new Composite(area, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); composite.setLayout(new GridLayout()); viewer = new TableViewer(composite, SWT.BORDER | SWT.V_SCROLL); viewer.getTable().setLayoutData(new GridData(350, 500)); viewer.getTable().setLinesVisible(true); viewer.setContentProvider(ArrayContentProvider.getInstance()); TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.NONE); col1.getColumn().setWidth(250);// w ww .ja v a2 s . c o m col1.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof SmartCollection) return ((SmartCollection) element).getName(); return super.getText(element); } }); TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.NONE); col2.getColumn().setWidth(250); col2.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof SmartCollection) { if (element == pending) return Messages.PurgeEmptyDialog_analyzing; if (allDeleted.contains(((SmartCollection) element).getStringId())) return Messages.PurgeEmptyDialog_deleted; if (kept.contains(((SmartCollection) element).getStringId())) return Messages.PurgeEmptyDialog_kept; return ""; //$NON-NLS-1$ } return super.getText(element); } @Override protected Font getFont(Object element) { if (allDeleted.contains(((SmartCollection) element).getStringId())) return JFaceResources.getFont(UiConstants.SELECTIONFONT); return super.getFont(element); } }); viewer.setInput(collections); return area; }
From source file:com.bdaum.zoom.ui.internal.dialogs.SetPersonDialog.java
License:Open Source License
@Override protected Control createDialogArea(final Composite parent) { Composite area = (Composite) super.createDialogArea(parent); Composite composite = new Composite(area, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); composite.setLayout(new GridLayout()); composite.setLayout(new GridLayout(2, false)); viewer = new TableViewer(composite, SWT.BORDER | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.SINGLE | SWT.VIRTUAL); TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.NONE); col1.getColumn().setWidth(200);/*from www . j ava 2 s .c o m*/ col1.getColumn().setText(Messages.AlbumSelectionDialog_name); col1.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof SmartCollectionImpl) return ((SmartCollectionImpl) element).getName(); return element.toString(); } public Image getImage(Object element) { if (element instanceof SmartCollectionImpl) { String id = ((SmartCollectionImpl) element).getStringId(); Image face = faces.get(id); if (face == null) faces.put(id, face = UiUtilities.getFace(getShell().getDisplay(), (SmartCollectionImpl) element, 24, 4, parent.getBackground())); return face; } return null; } @Override protected Rectangle getIconBounds() { return Icons.person64.getImage().getBounds(); } }); TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.NONE); col2.getColumn().setWidth(250); col2.getColumn().setText(Messages.AlbumSelectionDialog_description); col2.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof SmartCollectionImpl) return ((SmartCollectionImpl) element).getDescription(); return element.toString(); } }); viewer.setContentProvider(new DeferredContentProvider(new Comparator<SmartCollection>() { @Override public int compare(SmartCollection e1, SmartCollection e2) { return e1.getName().compareTo(e2.getName()); } })); GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true); layoutData.heightHint = 500; viewer.getControl().setLayoutData(layoutData); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { if (cntrlDwn) { SmartCollectionImpl sm = (SmartCollectionImpl) viewer.getStructuredSelection() .getFirstElement(); if (sm != null) { CollectionEditDialog dialog = new CollectionEditDialog(getShell(), sm, Messages.AlbumSelectionDialog_edit_person, Messages.AlbumSelectionDialog_person_album_msg, false, true, false, false); if (dialog.open() == Window.OK) { final SmartCollectionImpl album = dialog.getResult(); if (album != null) { Set<Object> toBeDeleted = new HashSet<Object>(); List<Object> toBeStored = new ArrayList<Object>(); Utilities.updateCollection(dbManager, sm, album, toBeDeleted, toBeStored); dbManager.safeTransaction(toBeDeleted, toBeStored); } viewer.update(sm, null); } } cntrlDwn = false; } validate(); } }); viewer.getControl().addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.CTRL) cntrlDwn = true; } @Override public void keyReleased(KeyEvent e) { if (e.keyCode == SWT.CTRL) cntrlDwn = false; } }); return area; }
From source file:com.bdaum.zoom.ui.internal.preferences.KeyPreferencePage.java
License:Open Source License
@SuppressWarnings("unused") private void createBindingTable(Composite composite) { bindingViewer = new TableViewer(composite, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL | SWT.FULL_SELECTION); Table table = bindingViewer.getTable(); table.setLayoutData(new GridData(550, 300)); table.setHeaderVisible(true);//from w w w . j av a 2 s. c o m table.setLinesVisible(true); commandColumn = createColumn(bindingViewer, Messages.getString("KeyPreferencePage.command"), 200); //$NON-NLS-1$ commandLabelProvider = new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof Command) { try { return ((Command) element).getName(); } catch (NotDefinedException e) { return Messages.getString("KeyPreferencePage.undefined"); //$NON-NLS-1$ } } return element.toString(); } @Override public Font getFont(Object element) { if (element instanceof Command) { Binding binding = commandMap.get(((Command) element).getId()); if (binding != null && binding.getType() == Binding.USER) return JFaceResources.getFont(UiConstants.ITALICFONT); } return super.getFont(element); } }; commandColumn.setLabelProvider(commandLabelProvider); keyColumn = createColumn(bindingViewer, Messages.getString("KeyPreferencePage.keys"), 150); //$NON-NLS-1$ keyLabelProvider = new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof Command) { Binding binding = commandMap.get(((Command) element).getId()); if (binding != null) return binding.getTriggerSequence().format(); return null; } return element.toString(); } }; keyColumn.setLabelProvider(keyLabelProvider); catColumn = createColumn(bindingViewer, Messages.getString("KeyPreferencePage.category"), 150); //$NON-NLS-1$ catLabelProvider = new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof Command) try { return ((Command) element).getCategory().getName(); } catch (NotDefinedException e) { return Messages.getString("KeyPreferencePage.undefined"); //$NON-NLS-1$ } return element.toString(); } }; catColumn.setLabelProvider(catLabelProvider); bindingViewer.setContentProvider(ArrayContentProvider.getInstance()); new SortColumnManager(bindingViewer, new int[] { SWT.UP, SWT.UP, SWT.UP }, 0); bindingViewer.setComparator(ZViewerComparator.INSTANCE); bindingViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateDetails(); } }); }
From source file:com.bdaum.zoom.ui.internal.preferences.KeyPreferencePage.java
License:Open Source License
private void createConflictsArea(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); composite.setLayout(new GridLayout(1, false)); new Label(composite, SWT.NONE).setText(Messages.getString("KeyPreferencePage.conflicts")); //$NON-NLS-1$ conflictViewer = new TableViewer(composite, SWT.SINGLE | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); Table table = conflictViewer.getTable(); TableViewerColumn bindingNameColumn = new TableViewerColumn(conflictViewer, SWT.LEAD); bindingNameColumn.getColumn().setWidth(250); table.setLayoutData(new GridData(250, 80)); bindingNameColumn.setLabelProvider(new ZColumnLabelProvider() { @Override/*from w w w . j a v a 2 s .c o m*/ public String getText(Object element) { if (element instanceof Binding[]) { StringBuilder sb = new StringBuilder(); for (Binding binding : ((Binding[]) element)) { ParameterizedCommand parameterizedCommand = binding.getParameterizedCommand(); String s = Messages.getString("KeyPreferencePage.undefined"); //$NON-NLS-1$ if (parameterizedCommand != null) try { s = parameterizedCommand.getName(); } catch (NotDefinedException e) { // do nothing } if (sb.length() > 0) sb.append("; "); //$NON-NLS-1$ sb.append(s); } return sb.toString(); } return element.toString(); } }); conflictViewer.setContentProvider(ArrayContentProvider.getInstance()); conflictViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); if (!selection.isEmpty()) { Binding[] conflict = (Binding[]) selection.getFirstElement(); bindingViewer.setSelection(new StructuredSelection(conflict[0])); } } }); }