List of usage examples for org.eclipse.jface.viewers CellNavigationStrategy CellNavigationStrategy
CellNavigationStrategy
From source file:com.adobe.granite.ide.eclipse.ui.wizards.np.AdvancedSettingsComponent.java
License:Apache License
public void createAdvancedSection(Composite container) { Label label;/*from ww w .j a v a 2 s . co m*/ GridData gd; label = new Label(container, SWT.NULL); label.setText("&Version:"); version = new Text(container, SWT.BORDER | SWT.SINGLE); gd = new GridData(GridData.FILL_HORIZONTAL); version.setLayoutData(gd); version.setText("0.0.1-SNAPSHOT"); version.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { wizardPage.dialogChanged(); } }); label = new Label(container, SWT.NULL); label.setText("&Package:"); javaPackage = new Text(container, SWT.BORDER | SWT.SINGLE); gd = new GridData(GridData.FILL_HORIZONTAL); javaPackage.setLayoutData(gd); javaPackageModified = false; javaPackage.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { javaPackageModified = true; } }); javaPackage.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { wizardPage.dialogChanged(); } }); label = new Label(container, SWT.NULL); gd = new GridData(SWT.LEFT, SWT.TOP, false, false); label.setLayoutData(gd); label.setText("&Parameters:"); propertiesViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION); propertiesTable = propertiesViewer.getTable(); propertiesTable.setLinesVisible(true); propertiesTable.setHeaderVisible(true); propertiesTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 2)); CellNavigationStrategy strategy = new CellNavigationStrategy(); TableViewerFocusCellManager focusCellMgr = new TableViewerFocusCellManager(propertiesViewer, new FocusCellOwnerDrawHighlighter(propertiesViewer), strategy); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy( propertiesViewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; int features = ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION | ColumnViewerEditor.KEEP_EDITOR_ON_DOUBLE_CLICK; TableViewerEditor.create(propertiesViewer, focusCellMgr, actSupport, features); TableColumn propertiesTableNameColumn = new TableColumn(propertiesTable, SWT.NONE); propertiesTableNameColumn.setWidth(180); propertiesTableNameColumn.setText("Name"); TableColumn propertiesTableValueColumn = new TableColumn(propertiesTable, SWT.NONE); propertiesTableValueColumn.setWidth(300); propertiesTableValueColumn.setText("Value"); propertiesViewer.setColumnProperties(new String[] { KEY_PROPERTY, VALUE_PROPERTY }); propertiesViewer.setCellEditors(new CellEditor[] { null /* cannot edit the name */, new TextCellEditor(propertiesTable, SWT.NONE) }); propertiesViewer.setCellModifier(new ICellModifier() { public boolean canModify(Object element, String property) { return true; } public void modify(Object element, String property, Object value) { if (element instanceof TableItem) { ((TableItem) element).setText(getTextIndex(property), String.valueOf(value)); wizardPage.dialogChanged(); } } public Object getValue(Object element, String property) { if (element instanceof TableItem) { return ((TableItem) element).getText(getTextIndex(property)); } return null; } }); }
From source file:de.walware.ecommons.ui.util.ViewerUtil.java
License:Open Source License
public static void installDefaultEditBehaviour(final TableViewer tableViewer) { final CellNavigationStrategy naviStrat = new CellNavigationStrategy() { @Override/*from w ww . j a v a 2 s.co m*/ public ViewerCell findSelectedCell(final ColumnViewer viewer, final ViewerCell currentSelectedCell, final Event event) { final ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event); if (cell != null) { tableViewer.getTable().showColumn(tableViewer.getTable().getColumn(cell.getColumnIndex())); } return cell; } }; final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(tableViewer, new FocusCellOwnerDrawHighlighter(tableViewer), naviStrat); TableViewerEditor.create(tableViewer, focusCellManager, createActivationStrategy(tableViewer), ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.KEYBOARD_ACTIVATION); }
From source file:de.walware.ecommons.ui.util.ViewerUtil.java
License:Open Source License
public static void installDefaultEditBehaviour(final TreeViewer treeViewer) { final CellNavigationStrategy naviStrat = new CellNavigationStrategy() { @Override//from w w w .ja v a 2 s. c om public ViewerCell findSelectedCell(final ColumnViewer viewer, final ViewerCell currentSelectedCell, final Event event) { final ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event); if (cell != null) { treeViewer.getTree().showColumn(treeViewer.getTree().getColumn(cell.getColumnIndex())); } return cell; } }; final TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(treeViewer, new FocusCellOwnerDrawHighlighter(treeViewer), naviStrat); TreeViewerEditor.create(treeViewer, focusCellManager, createActivationStrategy(treeViewer), ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.KEYBOARD_ACTIVATION); }
From source file:org.apache.sling.ide.eclipse.ui.views.JcrPropertiesView.java
License:Apache License
/** * This is a callback that will allow us * to create the viewer and initialize it. *//*from w w w .j a va 2s . c o m*/ public void createPartControl(Composite parent) { SyncDirManager.registerUpdateListener(new UpdateHandler() { @Override public void syncDirUpdated(SyncDir syncDir) { refreshContent(); } }); mainControl = new Composite(parent, SWT.NONE); final GridLayout gridLayout = new GridLayout(1, true); mainControl.setLayout(gridLayout); if (getViewSite() != null) { titleLabel = new Label(mainControl, SWT.WRAP); titleLabel.setText(""); GridData data = new GridData(GridData.FILL_HORIZONTAL); titleLabel.setLayoutData(data); Label horizontalLine = new Label(mainControl, SWT.SEPARATOR | SWT.HORIZONTAL); data = new GridData(GridData.FILL_HORIZONTAL); horizontalLine.setLayoutData(data); } Font font; if (!JFaceResources.getFontRegistry().hasValueFor(TITLE_FONT)) { FontData[] fontData = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT) .getFontData(); /* title font is 2pt larger than that used in the tabs. */ fontData[0].setHeight(fontData[0].getHeight() + 2); JFaceResources.getFontRegistry().put(TITLE_FONT, fontData); } font = JFaceResources.getFont(TITLE_FONT); if (titleLabel != null) { titleLabel.setFont(font); } Composite tableParent = new Composite(mainControl, SWT.NONE); // tableParent.setBackground(new Color(Display.getDefault(), 100,20,180)); GridData tableLayoutData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); tableLayoutData.widthHint = 1; // shrink to min - table settings will resize to correct ratios tableLayoutData.heightHint = SWT.DEFAULT; tableParent.setLayoutData(tableLayoutData); TableColumnLayout tableLayout = new TableColumnLayout() { @Override protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) { Point p = super.computeSize(composite, wHint, hHint, flushCache); return new Point(p.x, p.y); } }; tableParent.setLayout(tableLayout); viewer = new TableViewer(tableParent, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.HIDE_SELECTION | SWT.FULL_SELECTION); TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer), new CellNavigationStrategy()); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { resetLastValueEdited(); return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; int features = ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION | ColumnViewerEditor.KEEP_EDITOR_ON_DOUBLE_CLICK; TableViewerEditor.create(viewer, focusCellManager, actSupport, features); viewer.getTable().setLinesVisible(true); viewer.getTable().setHeaderVisible(true); viewer.setContentProvider(new ViewContentProvider()); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { final ISelection selection = event.getSelection(); if (selection instanceof IStructuredSelection) { IStructuredSelection iss = (IStructuredSelection) selection; if (iss.isEmpty()) { deleteAction.setEnabled(false); } else { deleteAction.setEnabled(true); } } else { deleteAction.setEnabled(false); } } }); CellLabelProvider clp = new JcrCellLabelProvider(viewer); TableViewerColumn column0 = new TableViewerColumn(viewer, SWT.NONE); column0.getColumn().setText("Name"); column0.getColumn().setResizable(true); column0.getColumn().setWidth(200); tableLayout.setColumnData(column0.getColumn(), new ColumnWeightData(30, 140)); final TableViewerColumn column1 = new TableViewerColumn(viewer, SWT.NONE); column1.getColumn().setText("Type"); column1.getColumn().setResizable(true); column1.getColumn().setWidth(300); column1.setLabelProvider(clp); tableLayout.setColumnData(column1.getColumn(), new ColumnWeightData(10, 80)); final TableViewerColumn column2 = new TableViewerColumn(viewer, SWT.NONE); column2.getColumn().setText("Value"); column2.getColumn().setResizable(true); column2.getColumn().setWidth(300); tableLayout.setColumnData(column2.getColumn(), new ColumnWeightData(70, 220)); final TableViewerColumn column3 = new TableViewerColumn(viewer, SWT.NONE); column3.getColumn().setText("Protected"); column3.getColumn().setResizable(true); column3.getColumn().setWidth(300); column3.setLabelProvider(clp); tableLayout.setColumnData(column3.getColumn(), new ColumnWeightData(5, 57)); final TableViewerColumn column4 = new TableViewerColumn(viewer, SWT.NONE); column4.getColumn().setText("Mandatory"); column4.getColumn().setResizable(true); column4.getColumn().setWidth(300); column4.setLabelProvider(clp); tableLayout.setColumnData(column4.getColumn(), new ColumnWeightData(5, 62)); final TableViewerColumn column5 = new TableViewerColumn(viewer, SWT.NONE); column5.getColumn().setText("Multiple"); column5.getColumn().setResizable(true); column5.getColumn().setWidth(300); column5.setLabelProvider(clp); tableLayout.setColumnData(column5.getColumn(), new ColumnWeightData(5, 82)); final TableViewerColumn column6 = new TableViewerColumn(viewer, SWT.NONE); column6.getColumn().setText("Auto Created"); column6.getColumn().setResizable(true); column6.getColumn().setWidth(300); column6.setLabelProvider(clp); tableLayout.setColumnData(column6.getColumn(), new ColumnWeightData(5, 77)); column0.setLabelProvider(clp); column0.setEditingSupport(new JcrEditingSupport(this, viewer, ColumnId.NAME)); column1.setLabelProvider(clp); column1.setEditingSupport(new JcrEditingSupport(this, viewer, ColumnId.TYPE)); column2.setLabelProvider(clp); column2.setEditingSupport(new JcrEditingSupport(this, viewer, ColumnId.VALUE)); column5.setEditingSupport(new JcrEditingSupport(this, viewer, ColumnId.MULTIPLE)); // Create the help context id for the viewer's control PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(), "org.apache.sling.ide.eclipse-ui.viewer"); makeActions(); hookContextMenu(); hookDoubleClickAction(); contributeToActionBars(); listener = new ISelectionListener() { @Override public void selectionChanged(IWorkbenchPart part, ISelection selection) { if (selection instanceof IStructuredSelection) { IStructuredSelection iss = (IStructuredSelection) selection; Object firstElem = iss.getFirstElement(); if (firstElem instanceof JcrNode) { JcrNode jcrNode = (JcrNode) firstElem; setInput(jcrNode); return; } } } }; if (getViewSite() != null) { getViewSite().getPage().addSelectionListener(listener); final ISelection selection = getViewSite().getPage().getSelection(); Display.getCurrent().asyncExec(new Runnable() { @Override public void run() { listener.selectionChanged(null, selection); } }); } }
From source file:org.apache.sling.ide.eclipse.ui.wizards.np.ArchetypeParametersWizardPage.java
License:Apache License
/** * @see IDialogPage#createControl(Composite) *//*from ww w. j a v a 2 s . c o m*/ public void createControl(Composite parent) { Composite container = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(); container.setLayout(layout); layout.numColumns = 2; layout.verticalSpacing = 9; Label label = new Label(container, SWT.NULL); label.setText("&Group Id:"); groupId = new Text(container, SWT.BORDER | SWT.SINGLE); GridData gd = new GridData(GridData.FILL_HORIZONTAL); groupId.setLayoutData(gd); groupId.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { dialogChanged(); if (!javaPackageModified) { if (artifactId.getText().length() == 0) { javaPackage.setText(getDefaultJavaPackage(groupId.getText(), "")); } else { javaPackage.setText(getDefaultJavaPackage(groupId.getText(), artifactId.getText())); } } } }); label = new Label(container, SWT.NULL); label.setText("&Artifact Id:"); artifactId = new Text(container, SWT.BORDER | SWT.SINGLE); gd = new GridData(GridData.FILL_HORIZONTAL); artifactId.setLayoutData(gd); artifactId.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { dialogChanged(); if (javaPackageModified) { return; } if (groupId.getText().length() == 0) { javaPackage.setText(getDefaultJavaPackage("", artifactId.getText())); } else { javaPackage.setText(getDefaultJavaPackage(groupId.getText(), artifactId.getText())); } } }); label = new Label(container, SWT.NULL); label.setText("&Version:"); version = new Text(container, SWT.BORDER | SWT.SINGLE); gd = new GridData(GridData.FILL_HORIZONTAL); version.setLayoutData(gd); version.setText("0.0.1-SNAPSHOT"); version.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { dialogChanged(); } }); label = new Label(container, SWT.NULL); label.setText("&Package:"); javaPackage = new Text(container, SWT.BORDER | SWT.SINGLE); gd = new GridData(GridData.FILL_HORIZONTAL); javaPackage.setLayoutData(gd); javaPackageModified = false; javaPackage.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { javaPackageModified = true; } }); javaPackage.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { dialogChanged(); } }); label = new Label(container, SWT.NULL); gd = new GridData(SWT.LEFT, SWT.TOP, false, false); label.setLayoutData(gd); label.setText("&Parameters:"); propertiesViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION); propertiesTable = propertiesViewer.getTable(); propertiesTable.setLinesVisible(true); propertiesTable.setHeaderVisible(true); propertiesTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 2)); CellNavigationStrategy strategy = new CellNavigationStrategy(); TableViewerFocusCellManager focusCellMgr = new TableViewerFocusCellManager(propertiesViewer, new FocusCellOwnerDrawHighlighter(propertiesViewer), strategy); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy( propertiesViewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; int features = ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION | ColumnViewerEditor.KEEP_EDITOR_ON_DOUBLE_CLICK; TableViewerEditor.create(propertiesViewer, focusCellMgr, actSupport, features); TableColumn propertiesTableNameColumn = new TableColumn(propertiesTable, SWT.NONE); propertiesTableNameColumn.setWidth(130); propertiesTableNameColumn.setText("Name"); TableColumn propertiesTableValueColumn = new TableColumn(propertiesTable, SWT.NONE); propertiesTableValueColumn.setWidth(230); propertiesTableValueColumn.setText("Value"); propertiesViewer.setColumnProperties(new String[] { KEY_PROPERTY, VALUE_PROPERTY }); propertiesViewer.setCellEditors(new CellEditor[] { new TextCellEditor(propertiesTable, SWT.NONE), new TextCellEditor(propertiesTable, SWT.NONE) }); propertiesViewer.setCellModifier(new ICellModifier() { public boolean canModify(Object element, String property) { return true; } public void modify(Object element, String property, Object value) { if (element instanceof TableItem) { ((TableItem) element).setText(getTextIndex(property), String.valueOf(value)); dialogChanged(); } } public Object getValue(Object element, String property) { if (element instanceof TableItem) { return ((TableItem) element).getText(getTextIndex(property)); } return null; } }); initialize(); setPageComplete(false); setControl(container); }
From source file:org.eclipse.jface.snippets.viewers.Snippet058CellNavigationIn34.java
License:Open Source License
public Snippet058CellNavigationIn34(Shell shell) { final TableViewer v = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION); v.setContentProvider(ArrayContentProvider.getInstance()); TableViewerColumn column = null;/*ww w .j a v a2s. c o m*/ column = createColumnFor(v, "Givenname"); column.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { return ((Person) element).givenname; } }); column.setEditingSupport(new AbstractEditingSupport(v) { @Override protected Object getValue(Object element) { return ((Person) element).givenname; } @Override protected void doSetValue(Object element, Object value) { ((Person) element).givenname = value.toString(); } }); column = createColumnFor(v, "Surname"); column.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { return ((Person) element).surname; } }); column.setEditingSupport(new AbstractEditingSupport(v) { @Override protected Object getValue(Object element) { return ((Person) element).surname; } @Override protected void doSetValue(Object element, Object value) { ((Person) element).surname = value.toString(); } }); column = createColumnFor(v, "E-Mail"); column.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { return ((Person) element).email; } }); column.setEditingSupport(new AbstractEditingSupport(v) { @Override protected Object getValue(Object element) { return ((Person) element).email; } @Override protected void doSetValue(Object element, Object value) { ((Person) element).email = value.toString(); } }); column = createColumnFor(v, "Gender"); column.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(Object element) { return ((Person) element).gender; } }); ComboBoxCellEditor editor = new ComboBoxCellEditor(v.getTable(), new String[] { "M", "F" }); editor.setActivationStyle(ComboBoxCellEditor.DROP_DOWN_ON_TRAVERSE_ACTIVATION | ComboBoxCellEditor.DROP_DOWN_ON_PROGRAMMATIC_ACTIVATION | ComboBoxCellEditor.DROP_DOWN_ON_MOUSE_ACTIVATION | ComboBoxCellEditor.DROP_DOWN_ON_KEY_ACTIVATION); column.setEditingSupport(new AbstractEditingSupport(v, editor) { @Override protected Object getValue(Object element) { if (((Person) element).gender.equals("M")) return Integer.valueOf(0); return Integer.valueOf(1); } @Override protected void doSetValue(Object element, Object value) { if (((Integer) value).intValue() == 0) { ((Person) element).gender = "M"; } else { ((Person) element).gender = "F"; } } }); CellNavigationStrategy naviStrat = new CellNavigationStrategy() { @Override public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event) { ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event); if (cell != null) { v.getTable().showColumn(v.getTable().getColumn(cell.getColumnIndex())); } return cell; } }; TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v, new FocusCellOwnerDrawHighlighter(v), naviStrat); ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; int feature = ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION; TableViewerEditor.create(v, focusCellManager, actSupport, feature); v.getColumnViewerEditor().addEditorActivationListener(new ColumnViewerEditorActivationListener() { @Override public void afterEditorActivated(ColumnViewerEditorActivationEvent event) { } @Override public void afterEditorDeactivated(ColumnViewerEditorDeactivationEvent event) { } @Override public void beforeEditorActivated(ColumnViewerEditorActivationEvent event) { ViewerCell cell = (ViewerCell) event.getSource(); v.getTable().showColumn(v.getTable().getColumn(cell.getColumnIndex())); } @Override public void beforeEditorDeactivated(ColumnViewerEditorDeactivationEvent event) { } }); Person[] model = createModel(); v.setInput(model); v.getTable().setLinesVisible(true); v.getTable().setHeaderVisible(true); }
From source file:org.eclipsetrader.ui.internal.charts.views.HistoryDataDetailEditor.java
License:Open Source License
void createViewer(Composite parent) { Tree tree = new Tree(parent, SWT.FULL_SELECTION | SWT.MULTI); tree.setHeaderVisible(true);/*from w w w.java 2s.co m*/ tree.setLinesVisible(true); viewer = new TreeViewer(tree); IObservableFactory observableFactory = new IObservableFactory() { @Override public IObservable createObservable(Object target) { if (target instanceof HistoryDataDetailEditorModel) { return Observables .unmodifiableObservableList(((HistoryDataDetailEditorModel) target).getList()); } if (target instanceof HistoryDataEditorModel) { return Observables.unmodifiableObservableList(((HistoryDataEditorModel) target).getList()); } return null; } }; TreeStructureAdvisor treeStructureAdvisor = new TreeStructureAdvisor() { @Override public Boolean hasChildren(Object element) { if (element instanceof HistoryDataEditorModel) { return true; } return false; } }; ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(observableFactory, treeStructureAdvisor); viewer.setContentProvider(contentProvider); GC gc = new GC(parent); FontMetrics fontMetrics = gc.getFontMetrics(); gc.dispose(); TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.NONE); viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Time); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree), CellEditorValueProperty.timeValue(), BeanProperties.value(HistoryDataElement.PROP_DATE))); viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Open); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree), CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_OPEN))); viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_High); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree), CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_HIGH))); viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Low); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree), CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_LOW))); viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Close); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree), CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_CLOSE))); viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Volume); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree), CellEditorValueProperty.longValue(), BeanProperties.value(HistoryDataElement.PROP_VOLUME))); if (Platform.WS_GTK.equals(Platform.getWS())) { viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setWidth(1); } final String[] properties = new String[] { HistoryDataElement.PROP_DATE, HistoryDataElement.PROP_OPEN, HistoryDataElement.PROP_HIGH, HistoryDataElement.PROP_LOW, HistoryDataElement.PROP_CLOSE, HistoryDataElement.PROP_VOLUME, "" //$NON-NLS-1$ }; DataViewerLabelProvider labelProvider = new DataViewerLabelProvider( BeansObservables.observeMaps(contentProvider.getKnownElements(), properties)); labelProvider.setDateFormat(Util.getTimeFormat()); viewer.setLabelProvider(labelProvider); viewer.setSorter(new ViewerSorter() { @Override public int compare(Viewer viewer, Object o1, Object o2) { if ((o1 instanceof HistoryDataEditorModel) && (o2 instanceof HistoryDataEditorModel)) { TimeSpan ts1 = ((HistoryDataEditorModel) o1).getBarSize(); TimeSpan ts2 = ((HistoryDataEditorModel) o2).getBarSize(); if (ts1.higherThan(ts2)) { return 1; } if (ts2.higherThan(ts1)) { return -1; } return 0; } else if ((o1 instanceof HistoryDataElement) && (o2 instanceof HistoryDataElement)) { HistoryDataElement e1 = (HistoryDataElement) o1; HistoryDataElement e2 = (HistoryDataElement) o2; if (e1.getDate() != null && e2.getDate() != null) { return e1.getDate().compareTo(e2.getDate()); } if (e1.getDate() != null && e2.getDate() == null) { return -1; } if (e1.getDate() == null && e2.getDate() != null) { return 1; } } return 0; } }); CellNavigationStrategy naviStrat = new CellNavigationStrategy() { @Override public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event) { ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event); if (cell != null) { if (cell.getColumnIndex() == properties.length - 1) { return null; } Tree tree = ((TreeViewer) viewer).getTree(); tree.showColumn(tree.getColumn(cell.getColumnIndex())); } return cell; } }; TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer), naviStrat); ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TreeViewerEditor.create(viewer, focusCellManager, activationStrategy, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); tree.addTraverseListener(new TraverseListener() { @Override public void keyTraversed(TraverseEvent e) { if (e.detail == SWT.TRAVERSE_RETURN || e.detail == SWT.TRAVERSE_ESCAPE) { e.doit = false; } } }); tree.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (viewer.isCellEditorActive()) { return; } if (e.keyCode == SWT.INSERT) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); HistoryDataEditorModel parent = null; int index = 0; if (!selection.isEmpty()) { parent = model.getParent(selection.getFirstElement()); if (parent == null) { return; } index = parent.getList().indexOf(selection.getFirstElement()); if (index == -1) { index = parent.getList().size(); } } final HistoryDataElement element = new HistoryDataElement(); parent.getList().add(index, element); e.doit = false; Display.getDefault().asyncExec(new Runnable() { @Override public void run() { if (!viewer.getControl().isDisposed()) { viewer.editElement(element, 0); } } }); } else if (e.character == SWT.DEL) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); for (Object element : selection.toList()) { HistoryDataEditorModel parent = model.getParent(selection.getFirstElement()); if (parent != null) { if (parent.getList().remove(element)) { changeSupport.firePropertyChange(PROP_DIRTY, dirty, dirty = true); } } } } } }); viewer.setInput(model); }
From source file:org.eclipsetrader.ui.internal.charts.views.HistoryDataEditor.java
License:Open Source License
void createViewer(Composite parent) { Table table = new Table(parent, SWT.FULL_SELECTION | SWT.MULTI); table.setHeaderVisible(true);//from w w w . j av a 2 s .com table.setLinesVisible(true); viewer = new TableViewer(table); ObservableListContentProvider contentProvider = new ObservableListContentProvider(); viewer.setContentProvider(contentProvider); GC gc = new GC(parent); FontMetrics fontMetrics = gc.getFontMetrics(); gc.dispose(); TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE); viewerColumn.getColumn().setText(Messages.HistoryDataEditor_Date); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table), CellEditorValueProperty.dateValue(), BeanProperties.value(HistoryDataElement.PROP_DATE))); viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setText(Messages.HistoryDataEditor_Open); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table), CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_OPEN))); viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setText(Messages.HistoryDataEditor_High); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table), CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_HIGH))); viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setText(Messages.HistoryDataEditor_Low); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table), CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_LOW))); viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setText(Messages.HistoryDataEditor_Close); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table), CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_CLOSE))); viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setText(Messages.HistoryDataEditor_Volume); viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70)); viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table), CellEditorValueProperty.longValue(), BeanProperties.value(HistoryDataElement.PROP_VOLUME))); if (Platform.WS_GTK.equals(Platform.getWS())) { viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT); viewerColumn.getColumn().setWidth(1); } final String[] properties = new String[] { HistoryDataElement.PROP_DATE, HistoryDataElement.PROP_OPEN, HistoryDataElement.PROP_HIGH, HistoryDataElement.PROP_LOW, HistoryDataElement.PROP_CLOSE, HistoryDataElement.PROP_VOLUME, "" //$NON-NLS-1$ }; DataViewerLabelProvider labelProvider = new DataViewerLabelProvider( BeansObservables.observeMaps(contentProvider.getKnownElements(), properties)); labelProvider.setDateFormat(Util.getDateFormat()); viewer.setLabelProvider(labelProvider); viewer.setSorter(new ViewerSorter() { @Override public int compare(Viewer viewer, Object o1, Object o2) { HistoryDataElement e1 = (HistoryDataElement) o1; HistoryDataElement e2 = (HistoryDataElement) o2; if (e1.getDate() != null && e2.getDate() != null) { return e1.getDate().compareTo(e2.getDate()); } if (e1.getDate() != null && e2.getDate() == null) { return -1; } if (e1.getDate() == null && e2.getDate() != null) { return 1; } return 0; } }); CellNavigationStrategy naviStrat = new CellNavigationStrategy() { @Override public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event) { ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event); if (cell != null) { if (cell.getColumnIndex() == properties.length - 1) { return null; } Table table = ((TableViewer) viewer).getTable(); table.showColumn(table.getColumn(cell.getColumnIndex())); } return cell; } }; TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, new FocusCellOwnerDrawHighlighter(viewer), naviStrat); ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) { @Override protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) { return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR) || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC; } }; TableViewerEditor.create(viewer, focusCellManager, activationStrategy, ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION); table.addTraverseListener(new TraverseListener() { @Override public void keyTraversed(TraverseEvent e) { if (e.detail == SWT.TRAVERSE_RETURN || e.detail == SWT.TRAVERSE_ESCAPE) { e.doit = false; } } }); table.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (viewer.isCellEditorActive()) { return; } if (e.keyCode == SWT.INSERT) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); int index = 0; if (!selection.isEmpty()) { index = model.getList().indexOf(selection.getFirstElement()); if (index == -1) { index = model.getList().size(); } } final HistoryDataElement element = new HistoryDataElement(); model.getList().add(index, element); e.doit = false; Display.getDefault().asyncExec(new Runnable() { @Override public void run() { if (!viewer.getControl().isDisposed()) { viewer.editElement(element, 0); } } }); } else if (e.character == SWT.DEL) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); if (model.getList().removeAll(selection.toList())) { changeSupport.firePropertyChange(PROP_DIRTY, dirty, dirty = true); } } } }); viewer.setInput(model.getList()); }