List of usage examples for org.eclipse.jface.viewers TableViewerColumn TableViewerColumn
public TableViewerColumn(TableViewer viewer, TableColumn column)
From source file:com.bdaum.zoom.peer.internal.preferences.PeerPreferencePage.java
License:Open Source License
@SuppressWarnings("unused") private Control createPeerGroup(CTabFolder parent) { Composite comp = new Composite(parent, SWT.NONE); comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); comp.setLayout(new GridLayout(1, false)); Composite innerComp = new Composite(comp, SWT.NONE); GridLayout layout = new GridLayout(2, false); layout.marginWidth = 0;/*w ww . ja va 2 s . c o m*/ layout.marginHeight = 20; innerComp.setLayout(layout); innerComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); Label label = new Label(innerComp, SWT.WRAP); label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1)); label.setText(Messages.PeerPreferencePage_network_geography); peerViewer = new TableViewer(innerComp, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL); peerViewer.getTable().setLinesVisible(true); peerViewer.getTable().setHeaderVisible(true); peerViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); TableViewerColumn col0 = new TableViewerColumn(peerViewer, SWT.NONE); col0.getColumn().setWidth(100); col0.getColumn().setText(Messages.PeerPreferencePage_nickname); col0.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof PeerDefinition) { String nick = ((PeerDefinition) element).getNickname(); return nick == null ? "" : nick; //$NON-NLS-1$ } return ""; //$NON-NLS-1$ } }); EditingSupport editingSupport = new EditingSupport(peerViewer) { @Override protected void setValue(Object element, Object value) { if (element instanceof PeerDefinition && value instanceof PeerDefinition) { ((PeerDefinition) element).setHost(((PeerDefinition) value).getHost()); ((PeerDefinition) element).setNickname(((PeerDefinition) value).getNickname()); ((PeerDefinition) element).setPort(((PeerDefinition) value).getPort()); peerViewer.update(element, null); } } @Override protected Object getValue(Object element) { if (element instanceof PeerDefinition) return element; return null; } @Override protected CellEditor getCellEditor(final Object element) { if (element instanceof PeerDefinition) { return new DialogCellEditor(peerViewer.getTable()) { @Override protected Object openDialogBox(Control cellEditorWindow) { PeerDefinitionDialog dialog = new PeerDefinitionDialog(cellEditorWindow.getShell(), (PeerDefinition) element, true, false, false); if (dialog.open() == Window.OK) return dialog.getResult(); return null; } }; } return null; } @Override protected boolean canEdit(Object element) { return true; } }; col0.setEditingSupport(editingSupport); TableViewerColumn col1 = new TableViewerColumn(peerViewer, SWT.NONE); col1.getColumn().setWidth(250); col1.getColumn().setText(Messages.PeerPreferencePage_peer_location); col1.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof PeerDefinition) return ((PeerDefinition) element).getLocation(); return ""; //$NON-NLS-1$ } }); col1.setEditingSupport(editingSupport); TableViewerColumn col2 = new TableViewerColumn(peerViewer, SWT.NONE); col2.getColumn().setWidth(150); col2.getColumn().setText(Messages.PeerPreferencePage_status); col2.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof PeerDefinition) return PeerActivator.getDefault().isOnline((PeerDefinition) element) ? Messages.PeerPreferencePage_online : Messages.PeerPreferencePage_offline; return ""; //$NON-NLS-1$ } }); peerViewer.setContentProvider(ArrayContentProvider.getInstance()); new SortColumnManager(peerViewer, new int[] { SWT.UP, SWT.UP, SWT.NONE }, 0); peerViewer.setComparator(ZViewerComparator.INSTANCE); Composite buttonGroup = new Composite(innerComp, SWT.NONE); buttonGroup.setLayoutData(new GridData(SWT.END, SWT.BEGINNING, false, true)); buttonGroup.setLayout(new GridLayout()); Button addButton = new Button(buttonGroup, SWT.PUSH); addButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); addButton.setText(Messages.PeerPreferencePage_add); addButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { PeerDefinitionDialog dialog = new PeerDefinitionDialog(getShell(), null, true, false, false); if (dialog.open() == PeerDefinitionDialog.OK) { PeerDefinition newPeer = dialog.getResult(); @SuppressWarnings("unchecked") List<PeerDefinition> peers = (List<PeerDefinition>) peerViewer.getInput(); peers.add(newPeer); peerViewer.setInput(peers); peerViewer.setSelection(new StructuredSelection(newPeer)); } } }); final Button removeButton = new Button(buttonGroup, SWT.PUSH); removeButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); removeButton.setText(Messages.PeerPreferencePage_remove); removeButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection sel = peerViewer.getStructuredSelection(); Object firstElement = sel.getFirstElement(); if (firstElement instanceof PeerDefinition) { @SuppressWarnings("unchecked") List<PeerDefinition> peers = (List<PeerDefinition>) peerViewer.getInput(); peers.remove(firstElement); peerViewer.setInput(peers); } } }); removeButton.setEnabled(false); peerViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { removeButton.setEnabled(!event.getSelection().isEmpty()); } }); return comp; }
From source file:com.bdaum.zoom.ui.internal.dialogs.AutoRuleComponent.java
License:Open Source License
@SuppressWarnings("unused") public AutoRuleComponent(Composite parent, int style, IAdaptable info) { this.info = info; composite = new Composite(parent, SWT.NONE); Layout layout = parent.getLayout();/*from ww w . ja va 2 s . com*/ if (layout instanceof GridLayout) { GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true); layoutData.horizontalSpan = ((GridLayout) layout).numColumns; composite.setLayoutData(layoutData); } composite.setLayout(new GridLayout()); new Label(composite, SWT.NONE).setText(Messages.AutoRuleComponent_collections_expl); CGroup autoGroup = UiUtilities.createGroup(composite, 2, Messages.AutoRuleComponent_title); ruleViewer = new TableViewer(autoGroup, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL); TableViewerColumn col0 = new TableViewerColumn(ruleViewer, SWT.NONE); col0.getColumn().setText(Messages.AutoRuleComponent_name); col0.getColumn().setWidth(100); col0.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof AutoRule) return ((AutoRule) element).getName(); return element.toString(); } }); TableViewerColumn col1 = new TableViewerColumn(ruleViewer, SWT.NONE); col1.getColumn().setText(Messages.AutoRuleComponent_group); col1.getColumn().setWidth(180); col1.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof AutoRule) return ((AutoRule) element).getQfield().getCategory().toString(); return element.toString(); } }); TableViewerColumn col2 = new TableViewerColumn(ruleViewer, SWT.NONE); col2.getColumn().setText(Messages.AutoRuleComponent_field); col2.getColumn().setWidth(220); col2.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof AutoRule) return ((AutoRule) element).getQfield().getLabel(); return element.toString(); } }); TableViewerColumn col3 = new TableViewerColumn(ruleViewer, SWT.NONE); col3.getColumn().setText(Messages.AutoRuleComponent_type); col3.getColumn().setWidth(160); col3.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof AutoRule) { AutoRule rule = (AutoRule) element; if (rule.hasCustomIntervals()) return Messages.AutoRuleComponent_custom; QueryField qfield = rule.getQfield(); switch (qfield.getAutoPolicy()) { case QueryField.AUTO_DISCRETE: if (qfield.getEnumeration() != null) return Messages.AutoRuleComponent_enum; if (qfield.getType() == QueryField.T_BOOLEAN) return Messages.AutoRuleComponent_bool; return Messages.AutoRuleComponent_discrete; case QueryField.AUTO_LINEAR: return Messages.AutoRuleComponent_linear; case QueryField.AUTO_LOG: return Messages.AutoRuleComponent_exp; case QueryField.AUTO_CONTAINS: return Messages.AutoRuleComponent_arbitrary; case QueryField.AUTO_SELECT: return Messages.AutoRuleComponent_multiple; } } return element.toString(); } }); TableViewerColumn col4 = new TableViewerColumn(ruleViewer, SWT.NONE); col4.getColumn().setText(Messages.AutoRuleComponent_parms); col4.getColumn().setWidth(220); col4.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof AutoRule) { AutoRule rule = (AutoRule) element; QueryField qfield = rule.getQfield(); switch (qfield.getAutoPolicy()) { case QueryField.AUTO_CONTAINS: case QueryField.AUTO_SELECT: return rule.getValueSpec(); case QueryField.AUTO_DISCRETE: if (qfield.getEnumeration() != null) return rule.getEnumerationSpec(); if (qfield.getType() == QueryField.T_BOOLEAN) return Format.booleanFormatter.toString(Boolean.parseBoolean(rule.getBooleanSpec())); //$FALL-THROUGH$ default: return rule.getIntervalSpec(); } } return element.toString(); } }); ruleViewer.getTable().setHeaderVisible(true); ruleViewer.getTable().setLinesVisible(true); GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true); layoutData.heightHint = (style & SWT.SHORT) != 0 ? 150 : 300; ruleViewer.getTable().setLayoutData(layoutData); ruleViewer.setContentProvider(ArrayContentProvider.getInstance()); new SortColumnManager(ruleViewer, new int[] { SWT.UP, SWT.UP, SWT.UP, SWT.NONE, SWT.NONE }, 0); ruleViewer.setComparator(ZViewerComparator.INSTANCE); ruleViewer.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; } }); ruleViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateButtons(); if (cntrlDwn) { if (editAutoButton.isEnabled()) editRule(); cntrlDwn = false; } } }); ruleViewer.addDoubleClickListener(new IDoubleClickListener() { @Override public void doubleClick(DoubleClickEvent event) { if (!cntrlDwn && editAutoButton.isEnabled()) editRule(); } }); ruleViewer.setInput(autoRules); Composite autoButtonBar = new Composite(autoGroup, SWT.NONE); autoButtonBar.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false)); autoButtonBar.setLayout(new GridLayout(1, false)); addAutoButton = new Button(autoButtonBar, SWT.PUSH); addAutoButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); addAutoButton.setText(Messages.AutoRuleComponent_add); addAutoButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { AutoRuleDialog dialog = new AutoRuleDialog(parent.getShell(), null, autoRules); if (dialog.open() == AutoRuleDialog.OK) { AutoRule rule = dialog.getRule(); autoRules.add(rule); ruleViewer.add(rule); ruleViewer.setSelection(new StructuredSelection(rule)); fillAccelViewer(); updateButtons(); } } }); editAutoButton = new Button(autoButtonBar, SWT.PUSH); editAutoButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); editAutoButton.setText(Messages.AutoRuleComponent_edit); editAutoButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { editRule(); } }); removeAutoButton = new Button(autoButtonBar, SWT.PUSH); removeAutoButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); removeAutoButton.setText(Messages.AutoRuleComponent_remove); removeAutoButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { @SuppressWarnings("unchecked") Iterator<AutoRule> it = ruleViewer.getStructuredSelection().iterator(); while (it.hasNext()) { AutoRule rule = it.next(); int index = autoRules.indexOf(rule); autoRules.remove(rule); if (index >= autoRules.size()) --index; ruleViewer.remove(rule); if (index >= 0) ruleViewer.setSelection(new StructuredSelection(autoRules.get(index))); } fillAccelViewer(); updateButtons(); } }); new Label(autoButtonBar, SWT.SEPARATOR | SWT.HORIZONTAL) .setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); applyButton = new Button(autoButtonBar, SWT.PUSH); applyButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); applyButton.setText(Messages.AutoRuleComponent_apply); applyButton.setToolTipText(Messages.AutoRuleComponent_apply_tooltip); applyButton.addSelectionListener(new SelectionAdapter() { @SuppressWarnings("unchecked") @Override public void widgetSelected(SelectionEvent e) { IStructuredSelection sel = ruleViewer.getStructuredSelection(); if (!sel.isEmpty()) OperationJob.executeSlaveOperation( new AutoRuleOperation(new ArrayList<AutoRule>(sel.toList()), null, null), info, false); } }); CGroup accelGroup = UiUtilities.createGroup(composite, 1, Messages.AutoRuleComponent_accel_candidates); new Label(accelGroup, SWT.WRAP).setText(Messages.AutoRuleComponent_accel_msg); accelViewer = CheckboxTableViewer.newCheckList(accelGroup, SWT.V_SCROLL | SWT.BORDER); accelViewer.getTable().setLayoutData(new GridData(400, (style & SWT.SHORT) != 0 ? 50 : 80)); accelViewer.setContentProvider(ArrayContentProvider.getInstance()); accelViewer.setLabelProvider(new ZColumnLabelProvider() { @Override public String getText(Object element) { if (element instanceof QueryField) return ((QueryField) element).getLabel(); return element.toString(); } }); accelViewer.setComparator(ZViewerComparator.INSTANCE); updateButtons(); }
From source file:com.bdaum.zoom.ui.internal.dialogs.CategorizeDialog.java
License:Open Source License
@SuppressWarnings("unused") protected void createProposalArea() { Composite proposalArea = new Composite(comp, SWT.NONE); proposalArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); proposalArea.setLayout(new GridLayout(1, false)); proposalTitle = new Label(proposalArea, SWT.NONE); proposalTitle.setFont(JFaceResources.getHeaderFont()); proposalTitle.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); setProposalTitel();//from w w w. jav a 2s.co m stack = new Composite(proposalArea, SWT.BORDER); stack.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); stackLayout = new StackLayout(); stack.setLayout(stackLayout); PairLabelProvider pairLabelProvider = new PairLabelProvider(); CategoryLabelProvider catLabelProvider = new CategoryLabelProvider(getVocabManager()); ISelectionChangedListener selectionChangedListener = new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { updateButtons(); } }; // Unsplit version propComp = new Composite(stack, SWT.NONE); propComp.setLayout(new GridLayout(2, false)); Label label = new Label(propComp, SWT.NONE); label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1)); label.setText(Messages.CategorizeDialog_mark_keywords); proposalViewer = CheckboxTableViewer.newCheckList(propComp, SWT.V_SCROLL); GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true); layoutData.widthHint = 200; proposalViewer.getTable().setLayoutData(layoutData); TableViewerColumn col1 = new TableViewerColumn(proposalViewer, SWT.NONE); col1.getColumn().setWidth(150); col1.setLabelProvider(catLabelProvider); TableViewerColumn col2 = new TableViewerColumn(proposalViewer, SWT.NONE); col2.getColumn().setWidth(70); col2.setLabelProvider(pairLabelProvider); proposalViewer.setContentProvider(ArrayContentProvider.getInstance()); proposalViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, new Transfer[] { selectionTransfer }, new ProposalDragSourceListener(proposalViewer)); proposalViewer.addSelectionChangedListener(selectionChangedListener); ZColumnViewerToolTipSupport.enableFor(proposalViewer); Composite buttonArea = new Composite(propComp, SWT.NONE); buttonArea.setLayoutData(new GridData(SWT.END, SWT.BEGINNING, false, false)); buttonArea.setLayout(new GridLayout(1, false)); new AllNoneGroup(buttonArea, new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { proposalViewer.setAllChecked(e.widget.getData() == AllNoneGroup.ALL); updateButtons(); } }); Button button = new Button(buttonArea, SWT.PUSH); button.setText(Messages.CategorizeDialog_select_unpaired); button.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { Token[] tokens = (Token[]) proposalViewer.getInput(); for (Token tok : tokens) { proposalViewer.setChecked(tok, tok.getMatch() == UNCHECKED); } } }); // Split version splitComp = new Composite(stack, SWT.NONE); splitComp.setLayout(new GridLayout(2, false)); Label catLabel = new Label(splitComp, SWT.NONE); catLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false, 2, 1)); catLabel.setFont(JFaceResources.getBannerFont()); catLabel.setText(Messages.CategorizeDialog_proposed_as_categories); Label catLabel2 = new Label(splitComp, SWT.NONE); catLabel2.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false, 2, 1)); catLabel2.setText(Messages.CategorizeDialog_can_be_marked_as_keywords); proposalViewer1 = CheckboxTableViewer.newCheckList(splitComp, SWT.V_SCROLL); layoutData = new GridData(SWT.FILL, SWT.FILL, true, true); layoutData.widthHint = 200; layoutData.heightHint = 100; proposalViewer1.getTable().setLayoutData(layoutData); col1 = new TableViewerColumn(proposalViewer1, SWT.NONE); col1.getColumn().setWidth(150); col1.setLabelProvider(catLabelProvider); col2 = new TableViewerColumn(proposalViewer1, SWT.NONE); col2.getColumn().setWidth(70); col2.setLabelProvider(pairLabelProvider); proposalViewer1.setContentProvider(ArrayContentProvider.getInstance()); proposalViewer1.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY, new Transfer[] { selectionTransfer }, new ProposalDragSourceListener(proposalViewer1)); proposalViewer1.addSelectionChangedListener(selectionChangedListener); ColumnViewerToolTipSupport.enableFor(proposalViewer1); Composite buttonArea1 = new Composite(splitComp, SWT.NONE); buttonArea1.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false)); buttonArea1.setLayout(new GridLayout(1, false)); new AllNoneGroup(buttonArea1, new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { proposalViewer1.setAllChecked(e.widget.getData() == AllNoneGroup.ALL); updateButtons(); } }); button = new Button(buttonArea1, SWT.PUSH); button.setText(Messages.CategorizeDialog_select_unpaired); button.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { Token[] tokens = (Token[]) proposalViewer1.getInput(); for (Token tok : tokens) proposalViewer1.setChecked(tok, tok.getMatch() == UNCHECKED); } }); Label keyLabel = new Label(splitComp, SWT.NONE); keyLabel.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, true, 2, 1)); keyLabel.setFont(JFaceResources.getBannerFont()); keyLabel.setText(Messages.CategorizeDialog_proposed_as_keywords); proposalViewer2 = CheckboxTableViewer.newCheckList(splitComp, SWT.V_SCROLL); layoutData = new GridData(SWT.FILL, SWT.FILL, true, true); layoutData.widthHint = 200; layoutData.heightHint = 300; proposalViewer2.getTable().setLayoutData(layoutData); proposalViewer2.setLabelProvider(new ColumnLabelProvider()); proposalViewer2.setContentProvider(ArrayContentProvider.getInstance()); proposalViewer2.addSelectionChangedListener(selectionChangedListener); Composite buttonArea2 = new Composite(splitComp, SWT.NONE); buttonArea2.setLayoutData(new GridData(SWT.BEGINNING, SWT.BEGINNING, true, false)); buttonArea2.setLayout(new GridLayout(1, false)); new AllNoneGroup(buttonArea2, new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { proposalViewer2.setAllChecked(e.widget.getData() == AllNoneGroup.ALL); updateButtons(); } }); // Messages msgComp = new Composite(stack, SWT.NONE); msgComp.setLayout(new GridLayout(1, false)); msgLabel = new Label(msgComp, SWT.CENTER | SWT.WRAP); GridData ldata = new GridData(SWT.FILL, SWT.CENTER, true, true); ldata.heightHint = 30; msgLabel.setLayoutData(ldata); CLink aiLink = new CLink(proposalArea, SWT.NONE); aiLink.setText(Messages.CategorizeDialog_configure); aiLink.setToolTipText(Messages.CategorizeDialog_user_preferences); aiLink.addListener(new Listener() { @Override public void handleEvent(Event event) { if (aiService != null) { boolean wasEnabled = aiService.isEnabled(); if (wasEnabled) Job.getJobManager().cancel(this); if (aiService.configure(getShell())) { boolean enabled = aiService.isEnabled(); setProposalTitel(); List<Asset> reordered; int p = assets.indexOf(currentAsset); reordered = p > 0 ? assets.subList(p, assets.size()) : assets; for (Asset asset : reordered) predictions.remove(asset.getStringId()); fillValues(false); // TODO could be improved when language can be // controlled through API if (enabled) startPredictionJob(reordered); } } } }); }
From source file:com.bdaum.zoom.ui.internal.dialogs.CodesDialog.java
License:Open Source License
private void createTableColumn(TableViewer tableViewer, int width, String text, int index) { TableViewerColumn col = new TableViewerColumn(tableViewer, SWT.NONE); col.getColumn().setWidth(width);//from w w w .j a v a2s .c o m col.getColumn().setText(text); col.setLabelProvider(new TopicLabelProvider(index)); }
From source file:com.bdaum.zoom.ui.internal.dialogs.EditMetaDialog.java
License:Open Source License
private TableViewerColumn createColumn(String lab, int w) { TableViewerColumn col = new TableViewerColumn(watchedFolderViewer, SWT.NONE); col.getColumn().setText(lab);// w w w . j av a 2 s .c om col.getColumn().setWidth(w); return col; }
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 . j a v a2 s . c o 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 ww. j a va 2 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.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);// ww w . j ava2s.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);/* w w w .j a va2 s. com*/ 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);/* www. ja va 2 s. co 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; }