List of usage examples for org.eclipse.jface.viewers Viewer addSelectionChangedListener
@Override
public void addSelectionChangedListener(ISelectionChangedListener listener)
From source file:ac.soton.fmusim.components.presentation.ComponentsEditor.java
License:Open Source License
/** * This makes sure that one content viewer, either for the current page or the outline view, if it has focus, * is the current one./*from w ww. j a v a 2 s .c o m*/ * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setCurrentViewer(Viewer viewer) { // If it is changing... // if (currentViewer != viewer) { if (selectionChangedListener == null) { // Create the listener on demand. // selectionChangedListener = new ISelectionChangedListener() { // This just notifies those things that are affected by the section. // public void selectionChanged(SelectionChangedEvent selectionChangedEvent) { setSelection(selectionChangedEvent.getSelection()); } }; } // Stop listening to the old one. // if (currentViewer != null) { currentViewer.removeSelectionChangedListener(selectionChangedListener); } // Start listening to the new one. // if (viewer != null) { viewer.addSelectionChangedListener(selectionChangedListener); } // Remember it. // currentViewer = viewer; // Set the editors selection based on the current viewer's selection. // setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection()); } }
From source file:at.bitandart.zoubek.mervin.model.modelreview.presentation.ModelReviewEditor.java
License:Open Source License
/** * This makes sure that one content viewer, either for the current page or * the outline view, if it has focus, is the current one. <!-- * begin-user-doc --> <!-- end-user-doc --> * //from w ww. j a v a2s . c om * @generated */ public void setCurrentViewer(Viewer viewer) { // If it is changing... // if (currentViewer != viewer) { if (selectionChangedListener == null) { // Create the listener on demand. // selectionChangedListener = new ISelectionChangedListener() { // This just notifies those things that are affected by the // section. // public void selectionChanged(SelectionChangedEvent selectionChangedEvent) { setSelection(selectionChangedEvent.getSelection()); } }; } // Stop listening to the old one. // if (currentViewer != null) { currentViewer.removeSelectionChangedListener(selectionChangedListener); } // Start listening to the new one. // if (viewer != null) { viewer.addSelectionChangedListener(selectionChangedListener); } // Remember it. // currentViewer = viewer; // Set the editors selection based on the current viewer's // selection. // setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection()); } }
From source file:at.spardat.xma.guidesign.presentation.GuidesignEditor.java
License:Open Source License
/** * This makes sure that one content viewer, either for the current page or the outline view, * if it has focus, is the current one.//from w w w.j ava 2 s. c o m * <!-- begin-user-doc --> * <!-- end-user-doc --> * @modified!!! */ public void setCurrentViewer(Viewer viewer) { //for debugging only debug("call to setCurrentViewer=" + viewer); // If it is changing... // if (currentViewer != viewer) { if (selectionChangedListener != null) { // Stop listening to the old one. if (currentViewer != null) { currentViewer.removeSelectionChangedListener(selectionChangedListener); } } else { // Create the listener on demand. selectionChangedListener = new ISelectionChangedListener() { // This just notifies those things that are affected by the section. public void selectionChanged(SelectionChangedEvent selectionChangedEvent) { debug("selectionChanged in setCurrentViewer(): " + "Eventsource: " + selectionChangedEvent.getSource() + " Selection: " + selectionChangedEvent.getSelection()); setSelection(selectionChangedEvent.getSelection()); } }; } // Start listening to the new one. if (viewer != null) { viewer.addSelectionChangedListener(selectionChangedListener); } // Remember it. currentViewer = viewer; currentViewer.setSelection(getSelection()); } }
From source file:ca.uvic.chisel.javasketch.ui.internal.presentation.JavaThreadSequenceView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { filterImages = new ImageDescriptor[4]; ImageRegistry reg = SketchPlugin.getDefault().getImageRegistry(); filterImages[0] = reg.getDescriptor(ISketchImageConstants.ICON_ELEMENT_VISIBLE); filterImages[1] = reg.getDescriptor(ISketchImageConstants.ICON_ELEMENT_VISIBLE + "2-3"); filterImages[2] = reg.getDescriptor(ISketchImageConstants.ICON_ELEMENT_VISIBLE + "1-3"); filterImages[3] = reg.getDescriptor(ISketchImageConstants.ICON_ELEMENT_FILTERED); Composite page = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(1, false); page.setLayout(layout);// ww w. j a v a2 s.c om breadcrumb = new BreadCrumbViewer(page, SWT.BORDER); breadcrumb.setContentProvider(new BreadCrumbContentProvider()); breadcrumb.setLabelProvider(new TraceThreadLabelProvider()); breadcrumb.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); viewer = new UMLSequenceViewer(page, SWT.V_SCROLL | SWT.H_SCROLL | SWT.VIRTUAL); viewer.setUseHashlookup(true); viewer.setContentProvider(new TraceThreadContentProvider()); viewer.setLabelProvider(new TraceThreadLabelProvider()); viewer.setMessageGrouper(new ASTMessageGrouper()); viewer.addFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { boolean reconFilter = SketchPlugin.getDefault().getPreferenceStore() .getBoolean(ISketchPluginPreferences.DIAGRAM_RECON_HIDE); if (reconFilter && enableReconnaissanceAction.isChecked() && element instanceof ICall) { ICall call = (ICall) element; double interest = SketchPlugin.getDefault().getDOI().getInterest(call); if (interest < .3) { return false; } } return true; } }); internalSelectionListener = new InternalSelectionChangedListener(); viewer.addSelectionChangedListener(internalSelectionListener); viewer.getControl().addMouseListener(new NavigateToCodeListener()); viewer.getControl().setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); presentationListener = new PresentationListener(); viewer.addSequenceListener(presentationListener); new BreadCrumbHook(breadcrumb, viewer); createTimeRange(page, thread); viewer.setInput(thread); createActions(); createContextMenu(); getViewSite().getActionBars().getToolBarManager().add(enableReconnaissanceAction); getViewSite().getActionBars().getMenuManager().add(toggleReconFilterAction); //add the drop-down menu IMenuManager manager = getViewSite().getActionBars().getMenuManager(); manager.add(new Separator("presentation")); getViewSite().getPage().addSelectionListener(javaSelectionListener); selectionProvider = new InternalSelectionProvider(); getViewSite().setSelectionProvider(selectionProvider); sketchListener = new ISketchEventListenerImplementation(); SketchPlugin.getDefault().addSketchEventListener(sketchListener); SketchPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(preferenceListener); }
From source file:carisma.modeltype.bpmn2.extension.presentation.ExtensionEditor.java
License:Open Source License
/** * This makes sure that one content viewer, either for the current page or the outline view, if it has focus, * is the current one./* w w w . ja v a 2 s . c om*/ * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public void setCurrentViewer(Viewer viewer) { // If it is changing... // if (this.currentViewer != viewer) { if (this.selectionChangedListener == null) { // Create the listener on demand. // this.selectionChangedListener = new ISelectionChangedListener() { // This just notifies those things that are affected by the section. // @Override public void selectionChanged(SelectionChangedEvent selectionChangedEvent) { setSelection(selectionChangedEvent.getSelection()); } }; } // Stop listening to the old one. // if (this.currentViewer != null) { this.currentViewer.removeSelectionChangedListener(this.selectionChangedListener); } // Start listening to the new one. // if (viewer != null) { viewer.addSelectionChangedListener(this.selectionChangedListener); } // Remember it. // this.currentViewer = viewer; // Set the editors selection based on the current viewer's selection. // setSelection( this.currentViewer == null ? StructuredSelection.EMPTY : this.currentViewer.getSelection()); } }
From source file:com.amalto.workbench.dialogs.AnnotationOrderedListsDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { // Should not really be here but well,.... parent.getShell().setText(this.title); Composite composite = (Composite) super.createDialogArea(parent); GridLayout layout = (GridLayout) composite.getLayout(); layout.numColumns = 3;/*from ww w . j a va2 s . c o m*/ layout.makeColumnsEqualWidth = false; // layout.verticalSpacing = 10; if (actionType == AnnotationWrite_ActionType || actionType == AnnotationHidden_ActionType) { textControl = new CCombo(composite, SWT.BORDER | SWT.READ_ONLY); // roles=Util.getCachedXObjectsNameSet(this.xObject, TreeObject.ROLE); roles = getAllRolesStr(); ((CCombo) textControl).setItems(roles.toArray(new String[roles.size()])); } else if (actionType == AnnotationLookupField_ActionType || actionType == AnnotationPrimaKeyInfo_ActionType) { textControl = new CCombo(composite, SWT.BORDER | SWT.READ_ONLY); // roles=Util.getCachedXObjectsNameSet(this.xObject, TreeObject.ROLE); roles = getConceptElements(); ((CCombo) textControl).setItems(roles.toArray(new String[roles.size()])); } else { if (actionType == AnnotationOrderedListsDialog.AnnotationSchematron_ActionType) { textControl = new Text(composite, SWT.BORDER | SWT.WRAP | SWT.V_SCROLL); } else { textControl = new Text(composite, SWT.BORDER | SWT.SINGLE); } } if (actionType == AnnotationOrderedListsDialog.AnnotationForeignKeyInfo_ActionType) { textControl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); } else { if (actionType == AnnotationOrderedListsDialog.AnnotationSchematron_ActionType) { textControl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 7)); } else { textControl.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); } } ((GridData) textControl.getLayoutData()).minimumWidth = 400; textControl.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { } public void keyReleased(KeyEvent e) { if ((e.stateMask == 0) && (e.character == SWT.CR)) { xPaths.add(AnnotationOrderedListsDialog.getControlText(textControl)); viewer.refresh(); fireXPathsChanges(); } } }); if (actionType == AnnotationOrderedListsDialog.AnnotationForeignKeyInfo_ActionType) { Button xpathButton = new Button(composite, SWT.PUSH | SWT.CENTER); xpathButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1)); xpathButton.setText("...");//$NON-NLS-1$ xpathButton.setToolTipText(Messages.AnnotationOrderedListsDialog_SelectXpath); xpathButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { XpathSelectDialog dlg = getNewXpathSelectDialog(parentPage, dataModelName); dlg.setLock(lock); dlg.setBlockOnOpen(true); dlg.open(); if (dlg.getReturnCode() == Window.OK) { ((Text) textControl).setText(dlg.getXpath()); dlg.close(); } } }); } Button addLabelButton = new Button(composite, SWT.PUSH); addLabelButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); // addLabelButton.setText("Set"); addLabelButton.setImage(ImageCache.getCreatedImage(EImage.ADD_OBJ.getPath())); addLabelButton.setToolTipText(Messages.AnnotationOrderedListsDialog_Add); addLabelButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) { }; public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { boolean exist = false; for (String string : xPaths) { if (string.equals(getControlText(textControl))) { exist = true; } } if (!exist && getControlText(textControl) != null && getControlText(textControl) != "") { xPaths.add(getControlText(textControl)); } viewer.refresh(); fireXPathsChanges(); }; }); final String COLUMN = columnName; viewer = new TableViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION); viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1)); ((GridData) viewer.getControl().getLayoutData()).heightHint = 100; // Set up the underlying table Table table = viewer.getTable(); // table.setLayoutData(new GridData(GridData.FILL_BOTH)); new TableColumn(table, SWT.CENTER).setText(COLUMN); table.getColumn(0).setWidth(500); for (int i = 1, n = table.getColumnCount(); i < n; i++) { table.getColumn(i).pack(); } table.setHeaderVisible(true); table.setLinesVisible(true); // Create the cell editors --> We actually discard those later: not natural for an user CellEditor[] editors = new CellEditor[1]; if (actionType == AnnotationOrderedListsDialog.AnnotationWrite_ActionType || actionType == AnnotationOrderedListsDialog.AnnotationHidden_ActionType || actionType == AnnotationLookupField_ActionType || actionType == AnnotationPrimaKeyInfo_ActionType) { editors[0] = new ComboBoxCellEditor(table, roles.toArray(new String[] {}), SWT.READ_ONLY); } else { editors[0] = new TextCellEditor(table); } viewer.setCellEditors(editors); // set the content provider viewer.setContentProvider(new IStructuredContentProvider() { public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } public Object[] getElements(Object inputElement) { @SuppressWarnings("unchecked") ArrayList<String> xPaths = (ArrayList<String>) inputElement; ArrayList<DescriptionLine> lines = new ArrayList<DescriptionLine>(); for (String xPath : xPaths) { DescriptionLine line = new DescriptionLine(xPath); lines.add(line); } // we return an instance line made of a Sring and a boolean return lines.toArray(new DescriptionLine[lines.size()]); } }); // set the label provider viewer.setLabelProvider(new ITableLabelProvider() { public boolean isLabelProperty(Object element, String property) { return false; } public void dispose() { } public void addListener(ILabelProviderListener listener) { } public void removeListener(ILabelProviderListener listener) { } public String getColumnText(Object element, int columnIndex) { // System.out.println("getColumnText() "+columnIndex); DescriptionLine line = (DescriptionLine) element; switch (columnIndex) { case 0: return line.getLabel(); } return "";//$NON-NLS-1$ } public Image getColumnImage(Object element, int columnIndex) { return null; } }); // Set the column properties viewer.setColumnProperties(new String[] { COLUMN }); // set the Cell Modifier viewer.setCellModifier(new ICellModifier() { public boolean canModify(Object element, String property) { // if (INSTANCE_ACCESS.equals(property)) return true; Deactivated return true; // return false; } public void modify(Object element, String property, Object value) { TableItem item = (TableItem) element; DescriptionLine line = (DescriptionLine) item.getData(); String orgValue = line.getLabel(); if (actionType != AnnotationWrite_ActionType && actionType != AnnotationHidden_ActionType && actionType != AnnotationLookupField_ActionType && actionType != AnnotationPrimaKeyInfo_ActionType) { int targetPos = xPaths.indexOf(value.toString()); if (targetPos < 0) { line.setLabel(value.toString()); int index = xPaths.indexOf(orgValue); xPaths.remove(index); xPaths.add(index, value.toString()); viewer.update(line, null); } else if (targetPos >= 0 && !value.toString().equals(orgValue)) { MessageDialog.openInformation(null, Messages.Warning, Messages.AnnotationOrderedListsDialog_ValueAlreadyExists); } } else { String[] attrs = roles.toArray(new String[] {}); int index = Integer.parseInt(value.toString()); if (index == -1) { return; } value = attrs[index]; int pos = xPaths.indexOf(value.toString()); if (pos >= 0 && !(orgValue.equals(value))) { MessageDialog.openInformation(null, Messages.Warning, Messages.AnnotationOrderedListsDialog_); return; } else if (pos < 0) { line.setLabel(value.toString()); xPaths.set(index, value.toString()); viewer.update(line, null); } } fireXPathsChanges(); } public Object getValue(Object element, String property) { DescriptionLine line = (DescriptionLine) element; String value = line.getLabel(); if (actionType == AnnotationWrite_ActionType || actionType == AnnotationHidden_ActionType || actionType == AnnotationLookupField_ActionType || actionType == AnnotationPrimaKeyInfo_ActionType) { String[] attrs = roles.toArray(new String[] {}); return Arrays.asList(attrs).indexOf(value); } else { return value; } } }); // Listen for changes in the selection of the viewer to display additional parameters viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { DescriptionLine line = (DescriptionLine) ((IStructuredSelection) viewer.getSelection()) .getFirstElement(); if (line != null) { if (textControl instanceof CCombo) { ((CCombo) textControl).setText(line.getLabel()); } if (textControl instanceof Text) { ((Text) textControl).setText(line.getLabel()); } } } }); // display for Delete Key events to delete an instance viewer.getTable().addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { } public void keyReleased(KeyEvent e) { // System.out.println("Table keyReleased() "); if ((e.stateMask == 0) && (e.character == SWT.DEL) && (viewer.getSelection() != null)) { DescriptionLine line = (DescriptionLine) ((IStructuredSelection) viewer.getSelection()) .getFirstElement(); @SuppressWarnings("unchecked") ArrayList<String> xPaths = (ArrayList<String>) viewer.getInput(); xPaths.remove(line.getLabel()); viewer.refresh(); } } }); viewer.setInput(xPaths); viewer.refresh(); Composite rightButtonsComposite = new Composite(composite, SWT.NULL); rightButtonsComposite.setLayout(new GridLayout(1, true)); rightButtonsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1)); Button upButton = new Button(rightButtonsComposite, SWT.PUSH | SWT.CENTER); upButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1)); upButton.setImage(ImageCache.getCreatedImage(EImage.PREV_NAV.getPath())); upButton.setToolTipText(Messages.AnnotationOrderedListsDialog_MoveUpTheItem); upButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) { }; public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { DescriptionLine line = (DescriptionLine) ((IStructuredSelection) viewer.getSelection()) .getFirstElement(); if (line == null) { return; } int i = 0; for (String xPath : xPaths) { if (xPath.equals(line.getLabel())) { if (i > 0) { xPaths.remove(i); xPaths.add(i - 1, xPath); viewer.refresh(); viewer.getTable().setSelection(i - 1); viewer.getTable().showSelection(); fireXPathsChanges(); } return; } i++; } }; }); Button downButton = new Button(rightButtonsComposite, SWT.PUSH | SWT.CENTER); downButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1)); downButton.setImage(ImageCache.getCreatedImage(EImage.NEXT_NAV.getPath())); downButton.setToolTipText(Messages.AnnotationOrderedListsDialog_MoveDownTheItem); downButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) { }; public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { DescriptionLine line = (DescriptionLine) ((IStructuredSelection) viewer.getSelection()) .getFirstElement(); if (line == null) { return; } int i = 0; for (String xPath : xPaths) { if (xPath.equals(line.getLabel())) { if (i < xPaths.size() - 1) { xPaths.remove(i); xPaths.add(i + 1, xPath); viewer.refresh(); viewer.getTable().setSelection(i + 1); viewer.getTable().showSelection(); fireXPathsChanges(); } return; } i++; } }; }); Button delButton = new Button(rightButtonsComposite, SWT.PUSH | SWT.CENTER); delButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1)); delButton.setImage(ImageCache.getCreatedImage(EImage.DELETE_OBJ.getPath())); delButton.setToolTipText(Messages.AnnotationOrderedListsDialog_DelTheItem); delButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) { }; public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { DescriptionLine line = (DescriptionLine) ((IStructuredSelection) viewer.getSelection()) .getFirstElement(); if (line != null) { @SuppressWarnings("unchecked") ArrayList<String> xPaths = (ArrayList<String>) viewer.getInput(); xPaths.remove(line.getLabel()); viewer.refresh(); fireXPathsChanges(); } }; }); textControl.setFocus(); if (actionType != AnnotationOrderedListsDialog.AnnotationForeignKeyInfo_ActionType && actionType != AnnotationOrderedListsDialog.AnnotationTargetSystems_ActionType && actionType != AnnotationOrderedListsDialog.AnnotationSchematron_ActionType && actionType != AnnotationOrderedListsDialog.AnnotationLookupField_ActionType && actionType != AnnotationOrderedListsDialog.AnnotationPrimaKeyInfo_ActionType) { checkBox = new Button(composite, SWT.CHECK); checkBox.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, true, 2, 1)); checkBox.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) { }; public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { recursive = checkBox.getSelection(); }; }); checkBox.setSelection(recursive); checkBox.setText(Messages.AnnotationOrderedListsDialog_SetRoleRecursively); // Label label = new Label(composite, SWT.LEFT); // label.setText("set role recursively"); // label.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, true, // 1, 1)); } if (actionType == AnnotationForeignKeyInfo_ActionType) { createFKInfoFormatComp(composite); addDoubleClickListener(); } return composite; }
From source file:com.amalto.workbench.utils.CompositeViewersSelectionProvider.java
License:Open Source License
public CompositeViewersSelectionProvider(Viewer[] viewers) { for (Viewer eachViewer : viewers) { eachViewer.addSelectionChangedListener(this); }//from w w w .j a v a 2s .c o m }
From source file:com.amalto.workbench.widgets.ComplexTableViewer.java
License:Open Source License
protected void createViewer() { createTable();//from w w w . j a v a2 s . co m GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, columns.size(), 1); table.setLayoutData(gd); gd.heightHint = 80; // Up Down Delete button group Composite stepUpDownComposite = toolkit.createComposite(mainComposite, SWT.NONE); stepUpDownComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1)); stepUpDownComposite.setLayout(new GridLayout(1, false)); upButton = toolkit.createButton(stepUpDownComposite, "", SWT.PUSH | SWT.CENTER);//$NON-NLS-1$ upButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); upButton.setImage(ImageCache.getCreatedImage(EImage.PREV_NAV.getPath())); upButton.setToolTipText(Messages.ComplexTableViewer_UpBtnTip); upButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) { }; @SuppressWarnings("unchecked") public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { int index = viewer.getTable().getSelectionIndex(); if (index > 0 && index < viewer.getTable().getItemCount()) { // commit as we go if (mainPage != null) { mainPage.setComitting(true); } List<Line> items = (List<Line>) viewer.getInput(); Line line = items.get(index); items.remove(index); items.add(index - 1, line); viewer.refresh(); if (mainPage != null) { mainPage.setComitting(false); } markDirty(); } }; }); downButton = toolkit.createButton(stepUpDownComposite, "", SWT.PUSH | SWT.CENTER);//$NON-NLS-1$ downButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); downButton.setImage(ImageCache.getCreatedImage(EImage.NEXT_NAV.getPath())); downButton.setToolTipText(Messages.ComplexTableViewer_DownBtnTip); downButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) { }; @SuppressWarnings("unchecked") public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { int index = viewer.getTable().getSelectionIndex(); if (index >= 0 && index < viewer.getTable().getItemCount() - 1) { // commit as we go if (mainPage != null) { mainPage.setComitting(true); } List<Line> items = (List<Line>) viewer.getInput(); Line line = items.get(index); items.remove(index); items.add(index + 1, line); // viewer.setInput(items); viewer.refresh(); // TODO if (mainPage != null) { mainPage.setComitting(false); } markDirty(); } }; }); deleteButton = toolkit.createButton(stepUpDownComposite, "", SWT.PUSH | SWT.CENTER);//$NON-NLS-1$ deleteButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1)); deleteButton.setToolTipText(Messages.ComplexTableViewer_DelBtnLabel); deleteButton.setImage(ImageCache.getCreatedImage(EImage.DELETE_OBJ.getPath())); deleteButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) { }; @SuppressWarnings("unchecked") public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { int index = viewer.getTable().getSelectionIndex(); if (index >= 0 && index < viewer.getTable().getItemCount()) { List<Line> items = (List<Line>) viewer.getInput(); items.remove(index); viewer.refresh(); int pos = index - 1; if (pos >= 0) { viewer.getTable().select(pos); } markDirty(); } }; }); // Create the cell editors --> We actually discard those later: not natural for an user CellEditor[] editors = new CellEditor[columns.size()]; for (int i = 0; i < columns.size(); i++) { if (columns.get(i).isText()) { editors[i] = new TextCellEditor(table); } else if (columns.get(i).isCombo()) { editors[i] = new ComboBoxCellEditor(table, columns.get(i).getComboValues(), SWT.READ_ONLY); } else if (columns.get(i).isXPATH()) { editors[i] = new XpathCellEditor(table, validators.get(columns.get(i))); } else if (columns.get(i).isMultiMessage()) { editors[i] = new MultiMessageEditor(table); multiMsg.setColumn(table.getColumn(i)); } else if (columns.get(i).isValidationRule()) { editors[i] = new ValidationRuleEditor(table); validationRule.setColumn(table.getColumn(i)); } } viewer.setCellEditors(editors); // set the content provider viewer.setContentProvider(new IStructuredContentProvider() { public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } @SuppressWarnings("unchecked") public Object[] getElements(Object inputElement) { List<Line> lines = (List<Line>) inputElement; return lines.toArray(new Line[lines.size()]); } }); // set the label provider viewer.setLabelProvider(new ITableLabelProvider() { public boolean isLabelProperty(Object element, String property) { return false; } public void dispose() { } public void addListener(ILabelProviderListener listener) { } public void removeListener(ILabelProviderListener listener) { } public String getColumnText(Object element, int columnIndex) { Line line = (Line) element; if (columnIndex >= 0 && columnIndex < columns.size()) { for (KeyValue keyvalue : line.keyValues) { if (keyvalue.key.equals(columns.get(columnIndex).getName())) { String val = keyvalue.value; if (columns.get(columnIndex).isNillable()) { if (columns.get(columnIndex).getNillValue().equals(val)) { val = columns.get(columnIndex).getNillDisplay(); } } return val; } } } return "";//$NON-NLS-1$ } public Image getColumnImage(Object element, int columnIndex) { return null; } }); // Set the column properties ArrayList<String> columnNames = new ArrayList<String>(); for (ComplexTableViewerColumn column : columns) { columnNames.add(column.getName()); } viewer.setColumnProperties(columnNames.toArray(new String[columnNames.size()])); // set the Cell Modifier viewer.setCellModifier(new ICellModifier() { public boolean canModify(Object element, String property) { // if (INSTANCE_ACCESS.equals(property)) return true; Deactivated return editable; } @SuppressWarnings("unchecked") public void modify(Object element, String property, Object value) { if (value instanceof Integer) { if (Integer.valueOf(value.toString()) == -1) { return; } } // modify the text and combo cell value TableItem item = (TableItem) element; Line line = (Line) item.getData(); int columnIndex = Arrays.asList(viewer.getColumnProperties()).indexOf(property); if (!isForceTextCellEditor(columnIndex) && isAColumnWithCombo(columnIndex)) { String[] attrs = columns.get(columnIndex).getComboValues(); value = attrs[Integer.parseInt(value.toString())]; } KeyValue kv = line.keyValues.get(columnIndex); boolean noChange = kv.value.equals(value.toString()); kv.value = value.toString(); viewer.refresh(); if (!noChange) { markDirty(); } } public Object getValue(Object element, String property) { int columnIndex = Arrays.asList(viewer.getColumnProperties()).indexOf(property); Line line = (Line) element; // add getting value from combo if (isAColumnWithCombo(columnIndex)) { String value = line.keyValues.get(columnIndex).value; String[] attrs = columns.get(columnIndex).getComboValues(); return Arrays.asList(attrs).indexOf(value); } for (KeyValue keyvalue : line.keyValues) { if (property.equals(keyvalue.key)) { if (keyvalue.value.equals("")) {//$NON-NLS-1$ return columns.get(columnIndex).getNillDisplay(); } return keyvalue.value; } } return null; } private boolean isAColumnWithCombo(int columnIdx) { return columns.get(columnIdx).isCombo(); } private boolean isForceTextCellEditor(int columnIdx) { return columns.get(columnIdx).isText(); } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { Line line = (Line) ((IStructuredSelection) event.getSelection()).getFirstElement(); for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) { if (line == null) { Control control = columns.get(columnIndex).getControl(); if (control instanceof Text) { ((Text) control).setText("");//$NON-NLS-1$ } if (control instanceof CCombo) { ((CCombo) control).select(0); } if (control instanceof Combo) { ((CCombo) control).select(0); } } else { for (KeyValue keyvalue : line.keyValues) { if (keyvalue.key.equals(columns.get(columnIndex).getName())) { String val = keyvalue.value; Control control = columns.get(columnIndex).getControl(); if (control instanceof Text) { ((Text) control).setText(val); } if (control instanceof CCombo) { ((CCombo) control).setText(val); } if (control instanceof Combo) { ((CCombo) control).setText(val); } } } } } } }); // display for Delete Key events to delete an instance viewer.getTable().addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { } @SuppressWarnings("unchecked") public void keyReleased(KeyEvent e) { if ((e.stateMask == 0) && (e.character == SWT.DEL) && (viewer.getSelection() != null)) { Line line = (Line) ((IStructuredSelection) viewer.getSelection()).getFirstElement(); // update the underlying role and refresh the table // update the underlying model List<Line> items = (List<Line>) viewer.getInput(); items.remove(line); // refresh viewer.refresh(); // mark for update markDirty(); } } }); }
From source file:com.amitinside.e4.rcp.todo.parts.TodoOverviewPart.java
License:Apache License
@PostConstruct public void createControls(Composite parent, final MWindow window, EMenuService menuService) { applyGridLayout(parent).numColumns(1); btnNewButton = new Button(parent, SWT.PUSH); btnNewButton.addSelectionListener(new SelectionAdapter() { @Override/*from w w w . j ava 2 s. c o m*/ public void widgetSelected(SelectionEvent e) { final Job job = new Job("loading") { @Override protected IStatus run(IProgressMonitor monitor) { final List<Todo> list = model.getTodos(); broker.post(LOCAL_EVENT_FINISH, list); return Status.OK_STATUS; } }; job.schedule(); } }); btnNewButton.setText("Load Data"); final Text search = new Text(parent, SWT.SEARCH | SWT.CANCEL | SWT.ICON_SEARCH); // Assuming that GridLayout is used search.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); search.setMessage("Filter"); // Filter at every keystroke search.addModifyListener(new ModifyListener() { @Override public void modifyText(ModifyEvent e) { final Text source = (Text) e.getSource(); searchString = source.getText(); // Trigger update in the viewer viewer.refresh(); } }); // SWT.SEARCH | SWT.CANCEL not supported under Windows7 // This does not work under Windows7 search.addSelectionListener(new SelectionAdapter() { @Override public void widgetDefaultSelected(SelectionEvent e) { if (e.detail == SWT.CANCEL) { final Text text = (Text) e.getSource(); text.setText(""); // } } }); viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); final Table table = viewer.getTable(); table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); table.setHeaderVisible(true); table.setLinesVisible(true); final TableViewerColumn colSummary = new TableViewerColumn(viewer, SWT.NONE); colSummary.getColumn().setWidth(100); colSummary.getColumn().setText("Summary"); colSummary.setEditingSupport(new EditingSupport(viewer) { @Override protected void setValue(Object element, Object value) { final Todo todo = (Todo) element; todo.setSummary(String.valueOf(value)); viewer.refresh(); } @Override protected Object getValue(Object element) { final Todo todo = (Todo) element; return todo.getSummary(); } @Override protected CellEditor getCellEditor(Object element) { return new TextCellEditor(viewer.getTable(), SWT.NONE); } @Override protected boolean canEdit(Object element) { return true; } }); final TableViewerColumn colDescription = new TableViewerColumn(viewer, SWT.NONE); colDescription.getColumn().setWidth(200); colDescription.getColumn().setText("Description"); // We search in the summary and description field viewer.addFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { final Todo todo = (Todo) element; return todo.getSummary().contains(searchString) || todo.getDescription().contains(searchString) || todo.getNote().contains(searchString); } }); final TableViewerColumn colNotes = new TableViewerColumn(viewer, SWT.NONE); colNotes.getColumn().setWidth(50); colNotes.getColumn().setText("Notes"); colNotes.setEditingSupport(new EditingSupport(viewer) { @Override protected void setValue(Object element, Object value) { final Todo todo = (Todo) element; todo.setNote(String.valueOf(value)); viewer.refresh(); } @Override protected Object getValue(Object element) { final Todo todo = (Todo) element; return todo.getNote(); } @Override protected CellEditor getCellEditor(Object element) { return new TextCellEditor(viewer.getTable(), SWT.NONE); } @Override protected boolean canEdit(Object element) { return true; } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { final IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); service.setSelection(selection.getFirstElement()); } }); menuService.registerContextMenu(viewer.getControl(), "com.amitinside.e4.rcp.todo.popupmenu.table"); writableList = new WritableList(model.getTodos(), Todo.class); ViewerSupport.bind(viewer, writableList, BeanProperties .values(new String[] { Todo.FIELD_SUMMARY, Todo.FIELD_DESCRIPTION, Todo.FIELD_NOTE })); }
From source file:com.bdaum.zoom.ui.internal.dialogs.AlbumSelectionDialog.java
License:Open Source License
@SuppressWarnings("unused") @Override/* w w w .j a v a 2 s. c om*/ 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 CheckboxTreeViewer(composite, SWT.BORDER | SWT.V_SCROLL | SWT.FULL_SELECTION); TreeViewerColumn col1 = new TreeViewerColumn(viewer, SWT.NONE); col1.getColumn().setWidth(200); 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(); } }); if (!small) { TreeViewerColumn col2 = new TreeViewerColumn(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.getTree().setHeaderVisible(true); } viewer.setContentProvider(new ITreeContentProvider() { public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // do nothing } public void dispose() { // do nothing } public boolean hasChildren(Object element) { if (element instanceof SmartCollection) return !((SmartCollection) element).getSubSelection().isEmpty(); return false; } public Object getParent(Object element) { if (element instanceof SmartCollection) return ((SmartCollection) element).getSmartCollection_subSelection_parent(); return null; } public Object[] getElements(Object inputElement) { if (inputElement instanceof List) { List<SmartCollection> rootalbums = new ArrayList<SmartCollection>(); for (Object obj : (List<?>) inputElement) if (obj instanceof SmartCollection) { SmartCollection album = (SmartCollection) obj; if (album.getSmartCollection_subSelection_parent() == null) rootalbums.add(album); } return rootalbums.toArray(); } return null; } public Object[] getChildren(Object parentElement) { if (parentElement instanceof SmartCollection) return ((SmartCollection) parentElement).getSubSelection().toArray(); return EMPTY; } }); UiUtilities.installDoubleClickExpansion(viewer); viewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { validate(); } }); GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true); layoutData.heightHint = small ? 150 : 400; viewer.getControl().setLayoutData(layoutData); viewer.setComparator(ZViewerComparator.INSTANCE); if (assignedAlbums != null && !assignedAlbums.isEmpty()) viewer.setFilters(new ViewerFilter[] { new ViewerFilter() { @Override public boolean select(Viewer v, Object parentElement, Object element) { return !assignedAlbums.contains(((SmartCollectionImpl) element).getName()); } } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { if (cntrlDwn) { SmartCollectionImpl sm = (SmartCollectionImpl) ((IStructuredSelection) viewer.getSelection()) .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; } }); if (!small) new AllNoneGroup(composite, new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { if (e.widget.getData() == AllNoneGroup.ALL) { viewer.expandAll(); viewer.setCheckedElements(albums.toArray()); } else viewer.setCheckedElements(EMPTY); validate(); } }); return area; }