List of usage examples for org.eclipse.jface.viewers CellEditor CellEditor
protected CellEditor()
From source file:com.nextep.designer.vcs.ui.dialogs.ViewSelectorDialog.java
License:Open Source License
/** * Configures the viewer which displays workspaces.<br> * The setup is a bit tricky as we need a "button" behaviour which reacts on the deletion * column, thus allowing the user to remove a view. We do this by adding an editor which fires * the deletion on activation. The way JFace performs editor checks impose us to add cell * modifier and label properties as well.<br> * Because of JFace, the order in which elements are added are <b>very important</b> as editors * and modifiers need to be added <u>before</u> label providers. *//*from ww w .j a v a2 s . c o m*/ private void configureTableViewer() { viewer = new TableViewer(viewsTable); viewer.setCellEditors(new CellEditor[] { null, null, null, new CellEditor() { @Override public void activate() { ISelection s = viewer.getSelection(); if (s instanceof IStructuredSelection) { final IWorkspace view = (IWorkspace) ((IStructuredSelection) s).getFirstElement(); boolean confirm = MessageDialog.openQuestion(viewsTable.getShell(), MessageFormat.format(VCSUIMessages.getString("delViewConfirmTitle"), //$NON-NLS-1$ view.getName()), MessageFormat.format(VCSUIMessages.getString("delViewConfirm"), view.getName())); //$NON-NLS-1$ if (confirm) { final IWorkspace originalView = getViewService().getCurrentWorkspace(); try { getViewService().setCurrentWorkspace(view); deleteView(view); } finally { getViewService().setCurrentWorkspace(originalView); } refreshGUI(); } } } @Override protected Control createControl(Composite parent) { return null; } @Override protected Object doGetValue() { return null; } @Override protected void doSetFocus() { } @Override protected void doSetValue(Object value) { } } }); viewer.setColumnProperties(new String[] { "name", "vendor", "desc", "del" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ viewer.setCellModifier(new ICellModifier() { @Override public void modify(Object element, String property, Object value) { } @Override public Object getValue(Object element, String property) { return null; } @Override public boolean canModify(Object element, String property) { return "del".equals(property); //$NON-NLS-1$ } }); viewer.setComparator(new TableColumnSorter(viewsTable, viewer)); viewer.setContentProvider(new WorkspaceContentProvider()); viewer.setLabelProvider(new WorkspaceLabelProvider()); }
From source file:name.schedenig.eclipse.grepconsole.view.items.DoubleClickEditingSupport.java
License:Open Source License
/** * @see org.eclipse.jface.viewers.EditingSupport#getCellEditor(java.lang.Object) *///from ww w . ja v a 2s. c o m @Override protected CellEditor getCellEditor(Object element) { return new CellEditor() { @Override protected Control createControl(Composite parent) { return null; } @Override protected Object doGetValue() { return null; } @Override protected void doSetFocus() { } @Override protected void doSetValue(Object value) { doEdit(value); } }; }
From source file:org.entirej.applicationframework.rwt.renderers.mobile.blocks.EJRWTListRecordBlockRenderer.java
License:Apache License
public void buildGuiComponent(EJRWTEntireJGridPane blockCanvas) { EJFrameworkExtensionProperties appProp = EJCoreProperties.getInstance().getApplicationDefinedProperties(); if (appProp != null) { EJFrameworkExtensionProperties propertyGroup = appProp .getPropertyGroup(EJRWTSingleRecordBlockDefinitionProperties.ACTION_GROUP); if (propertyGroup != null) { addActionKeyinfo(// w w w .j av a 2s . c om propertyGroup .getStringProperty(EJRWTSingleRecordBlockDefinitionProperties.ACTION_QUERY_KEY), EJRWTSingleRecordBlockDefinitionProperties.ACTION_QUERY_KEY); addActionKeyinfo( propertyGroup .getStringProperty(EJRWTSingleRecordBlockDefinitionProperties.ACTION_INSERT_KEY), EJRWTSingleRecordBlockDefinitionProperties.ACTION_INSERT_KEY); addActionKeyinfo( propertyGroup .getStringProperty(EJRWTSingleRecordBlockDefinitionProperties.ACTION_UPDATE_KEY), EJRWTSingleRecordBlockDefinitionProperties.ACTION_UPDATE_KEY); addActionKeyinfo( propertyGroup .getStringProperty(EJRWTSingleRecordBlockDefinitionProperties.ACTION_DELETE_KEY), EJRWTSingleRecordBlockDefinitionProperties.ACTION_DELETE_KEY); addActionKeyinfo( propertyGroup .getStringProperty(EJRWTSingleRecordBlockDefinitionProperties.ACTION_REFRESH_KEY), EJRWTSingleRecordBlockDefinitionProperties.ACTION_REFRESH_KEY); } } // blockCanvas.cleanLayoutVertical(); EJBlockProperties blockProperties = _block.getProperties(); EJMainScreenProperties mainScreenProperties = blockProperties.getMainScreenProperties(); GridData gridData = new GridData(GridData.FILL_BOTH); gridData.widthHint = mainScreenProperties.getWidth(); gridData.heightHint = mainScreenProperties.getHeight(); gridData.horizontalSpan = mainScreenProperties.getHorizontalSpan(); gridData.verticalSpan = mainScreenProperties.getVerticalSpan(); gridData.grabExcessHorizontalSpace = mainScreenProperties.canExpandHorizontally(); gridData.grabExcessVerticalSpace = mainScreenProperties.canExpandVertically(); if (gridData.grabExcessHorizontalSpace) gridData.minimumWidth = mainScreenProperties.getWidth(); if (gridData.grabExcessVerticalSpace) gridData.minimumHeight = mainScreenProperties.getHeight(); EJFrameworkExtensionProperties rendererProp = blockProperties.getBlockRendererProperties(); blockCanvas.setLayoutData(gridData); EJFrameworkExtensionProperties sectionProperties = null; if (rendererProp != null) { sectionProperties = rendererProp .getPropertyGroup(EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR); } if (sectionProperties != null && sectionProperties.getStringProperty( EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_MODE) != null && !EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_MODE_GROUP .equals(sectionProperties.getStringProperty( EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_MODE))) { int style = ExpandableComposite.TITLE_BAR; String mode = sectionProperties .getStringProperty(EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_MODE); if (EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_MODE_TWISTIE.equals(mode)) { style = style | ExpandableComposite.TWISTIE; } else if (EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_MODE_TREE_NODE .equals(mode)) { style = style | ExpandableComposite.TREE_NODE; } if (sectionProperties.getBooleanProperty( EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_EXPANDED, true)) { style = style | ExpandableComposite.EXPANDED; } Section section = toolkit.createSection(blockCanvas, style); section.setLayoutData(gridData); String title = sectionProperties .getStringProperty(EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_TITLE); if (title != null) section.setText(title); EJRWTImageRetriever.getGraphicsProvider().rendererSection(section); if (mainScreenProperties.getDisplayFrame()) { Group group = new Group(section, SWT.NONE); group.setLayout(new FillLayout()); group.setLayoutData(gridData); hookKeyListener(group); String frameTitle = mainScreenProperties.getFrameTitle(); if (frameTitle != null && frameTitle.length() > 0) { group.setText(frameTitle); } _mainPane = new EJRWTEntireJGridPane(group, 1); section.setClient(group); } else { _mainPane = new EJRWTEntireJGridPane(section, 1); _mainPane.setLayoutData(gridData); _mainPane.cleanLayoutHorizontal(); section.setClient(_mainPane); } final EJFrameworkExtensionPropertyList propertyList = sectionProperties .getPropertyList(EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_ACTIONS); if (propertyList != null && propertyList.getAllListEntries().size() > 0) { ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT); final ToolBar toolbar = toolBarManager.createControl(section); final Cursor handCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_HAND); toolbar.setCursor(handCursor); // Cursor needs to be explicitly disposed toolbar.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { if ((handCursor != null) && (handCursor.isDisposed() == false)) { handCursor.dispose(); } } }); List<EJFrameworkExtensionPropertyListEntry> allListEntries = propertyList.getAllListEntries(); for (EJFrameworkExtensionPropertyListEntry entry : allListEntries) { final String actionID = entry .getProperty(EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_ACTION_ID); String actionImage = entry.getProperty( EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_ACTION_IMAGE); String actionName = entry.getProperty( EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_ACTION_NAME); String actionTooltip = entry.getProperty( EJRWTSingleRecordBlockDefinitionProperties.ITEM_GROUP_TITLE_BAR_ACTION_TOOLTIP); if (actionID != null) { Action action = new Action(actionID, IAction.AS_PUSH_BUTTON) { @Override public void runWithEvent(Event event) { _block.executeActionCommand(actionID, EJScreenType.MAIN); } }; if (actionName != null) action.setText(actionName); if (actionTooltip != null) action.setDescription(actionTooltip); if (actionImage != null && actionImage.length() > 0) { action.setImageDescriptor( ImageDescriptor.createFromImage(EJRWTImageRetriever.get(actionImage))); } toolBarManager.add(action); } } toolBarManager.update(true); section.setTextClient(toolbar); } } else { if (mainScreenProperties.getDisplayFrame()) { Group group = new Group(blockCanvas, SWT.NONE); group.setLayout(new FillLayout()); group.setLayoutData(gridData); hookKeyListener(group); String frameTitle = mainScreenProperties.getFrameTitle(); if (frameTitle != null && frameTitle.length() > 0) { group.setText(frameTitle); } _mainPane = new EJRWTEntireJGridPane(group, 1); } else { _mainPane = new EJRWTEntireJGridPane(blockCanvas, 1); _mainPane.setLayoutData(gridData); _mainPane.cleanLayoutHorizontal(); } } hookKeyListener(_mainPane); int style = SWT.VIRTUAL | SWT.V_SCROLL; if (!rendererProp.getBooleanProperty(EJRWTListRecordBlockDefinitionProperties.HIDE_TABLE_BORDER, false)) style = style | SWT.BORDER; if (rendererProp.getBooleanProperty(EJRWTListRecordBlockDefinitionProperties.ROW_SELECTION_PROPERTY, true)) style = style | SWT.FULL_SELECTION; else style = style | SWT.HIDE_SELECTION; Collection<EJItemGroupProperties> allItemGroupProperties = _block.getProperties() .getScreenItemGroupContainer(EJScreenType.MAIN).getAllItemGroupProperties(); final Table table; final boolean hideSelection = (style & SWT.HIDE_SELECTION) != 0; final EJRWTAbstractFilteredTable filterTree; if (rendererProp.getBooleanProperty(EJRWTTreeBlockDefinitionProperties.FILTER, false)) { if (allItemGroupProperties.size() > 0) { EJItemGroupProperties displayProperties = allItemGroupProperties.iterator().next(); if (displayProperties.dispayGroupFrame()) { Group group = new Group(_mainPane, SWT.NONE); group.setLayout(new FillLayout()); if (displayProperties.getFrameTitle() != null && displayProperties.getFrameTitle().length() > 0) group.setText(displayProperties.getFrameTitle()); group.setLayoutData( new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL)); filterTree = new EJRWTAbstractFilteredTable(group, style) { @Override public void filter(String filter) { if (filteredContentProvider != null && ((filter == null && filteredContentProvider.getFilter() != null) || !filter.equals(filteredContentProvider.getFilter()))) { filteredContentProvider.setFilter(filter); getViewer().setInput(filter); notifyStatus(); } } @Override protected TableViewer doCreateTableViewer(Composite parent, int style) { return _tableViewer = new TableViewer(parent) { @Override public void setSelection(ISelection selection) { if (hideSelection) selection = new StructuredSelection(); super.setSelection(selection); } @Override public void setSelection(ISelection selection, boolean reveal) { if (hideSelection) selection = new StructuredSelection(); super.setSelection(selection, reveal); } }; } }; } else { filterTree = new EJRWTAbstractFilteredTable(_mainPane, style) { @Override public void filter(String filter) { if (filteredContentProvider != null && ((filter == null && filteredContentProvider.getFilter() != null) || !filter.equals(filteredContentProvider.getFilter()))) { filteredContentProvider.setFilter(filter); getViewer().setInput(filter); notifyStatus(); } } @Override protected TableViewer doCreateTableViewer(Composite parent, int style) { return _tableViewer = new TableViewer(parent) { @Override public void setSelection(ISelection selection) { if (hideSelection) selection = new StructuredSelection(); super.setSelection(selection); } @Override public void setSelection(ISelection selection, boolean reveal) { if (hideSelection) selection = new StructuredSelection(); super.setSelection(selection, reveal); } }; } }; filterTree.setLayoutData( new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL)); } } else { filterTree = new EJRWTAbstractFilteredTable(_mainPane, style) { @Override public void filter(String filter) { if (filteredContentProvider != null && ((filter == null && filteredContentProvider.getFilter() != null) || !filter.equals(filteredContentProvider.getFilter()))) { filteredContentProvider.setFilter(filter); getViewer().setInput(filter); notifyStatus(); } } @Override protected TableViewer doCreateTableViewer(Composite parent, int style) { return _tableViewer = new TableViewer(parent) { @Override public void setSelection(ISelection selection) { if (hideSelection) selection = new StructuredSelection(); super.setSelection(selection); } @Override public void setSelection(ISelection selection, boolean reveal) { if (hideSelection) selection = new StructuredSelection(); super.setSelection(selection, reveal); } }; } }; filterTree.setLayoutData( new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL)); } table = (_tableViewer = filterTree.getViewer()).getTable(); } else { filterTree = null; if (allItemGroupProperties.size() > 0) { EJItemGroupProperties displayProperties = allItemGroupProperties.iterator().next(); if (displayProperties.dispayGroupFrame()) { Group group = new Group(_mainPane, SWT.NONE); group.setLayout(new FillLayout()); if (displayProperties.getFrameTitle() != null && displayProperties.getFrameTitle().length() > 0) group.setText(displayProperties.getFrameTitle()); group.setLayoutData( new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL)); table = new Table(group, style); } else { table = new Table(_mainPane, style); table.setLayoutData( new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL)); } } else { table = new Table(_mainPane, style); table.setLayoutData( new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL)); } _tableViewer = new TableViewer(table) { @Override public void setSelection(ISelection selection) { if (hideSelection) selection = new StructuredSelection(); super.setSelection(selection); } @Override public void setSelection(ISelection selection, boolean reveal) { if (hideSelection) selection = new StructuredSelection(); super.setSelection(selection, reveal); } }; } table.setLinesVisible(false); table.setHeaderVisible(false); Control[] children = table.getChildren(); for (Control control : children) { hookKeyListener(control); } hookKeyListener(table); EJRWTTableViewerColumnFactory factory = new EJRWTTableViewerColumnFactory(_tableViewer); ColumnViewerToolTipSupport.enableFor(_tableViewer); final List<ColumnLabelProvider> nodeTextProviders = new ArrayList<ColumnLabelProvider>(); final Map<ColumnLabelProvider, EJScreenItemProperties> nodeTextProvidersMap = new HashMap<ColumnLabelProvider, EJScreenItemProperties>(); for (EJItemGroupProperties groupProperties : allItemGroupProperties) { Collection<EJScreenItemProperties> itemProperties = groupProperties.getAllItemProperties(); for (EJScreenItemProperties screenItemProperties : itemProperties) { EJCoreMainScreenItemProperties mainScreenItemProperties = (EJCoreMainScreenItemProperties) screenItemProperties; ColumnLabelProvider screenItem = createScreenItem(factory, mainScreenItemProperties); if (screenItem != null) { nodeTextProviders.add(screenItem); nodeTextProvidersMap.put(screenItem, screenItemProperties); } } } if (!nodeTextProviders.isEmpty()) { table.setData(EJ_RWT.MARKUP_ENABLED, Boolean.TRUE); int height = rendererProp.getIntProperty(EJRWTListRecordBlockDefinitionProperties.ROW_HEIGHT, -1); if (height == -1 && nodeTextProviders.size() > 1) { table.setData(EJ_RWT.CUSTOM_ITEM_HEIGHT, Integer.valueOf(nodeTextProviders.size() * 20)); } else if (height > 0) { table.setData(EJ_RWT.CUSTOM_ITEM_HEIGHT, Integer.valueOf(height)); } // add double click action final String doubleClickActionCommand = rendererProp .getStringProperty(EJRWTListRecordBlockDefinitionProperties.CLICK_ACTION_COMMAND); final boolean hasAction = doubleClickActionCommand != null && doubleClickActionCommand.length() != 0; if (hasAction) { _tableViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent arg0) { _block.executeActionCommand(doubleClickActionCommand, EJScreenType.MAIN); } }); } final TableViewerColumn dataColumn = factory.createColumn("HTML", 500, new ColumnLabelProvider() { public String toHex(int r, int g, int b) { return "#" + toBrowserHexValue(r) + toBrowserHexValue(g) + toBrowserHexValue(b); } private String toBrowserHexValue(int number) { StringBuilder builder = new StringBuilder(Integer.toHexString(number & 0xff)); while (builder.length() < 2) { builder.append("0"); } return builder.toString().toUpperCase(); } @Override public String getText(Object element) { StringBuilder builder = new StringBuilder(); boolean addBr = false; for (ColumnLabelProvider labelProvider : nodeTextProviders) { if (addBr) { builder.append("<br/>"); } boolean added = false; EJScreenItemProperties item = nodeTextProvidersMap.get(labelProvider); if (item != null && item.getLabel() != null && item.getLabel().trim().length() > 0) { builder.append(item.getLabel()); builder.append(" : "); added = true; } Image image = labelProvider.getImage(element); if (image != null) { String imagePath = ImageFactory.getImagePath(image); if (imagePath != null) { builder.append("<img src=\""); builder.append(imagePath); Rectangle bounds = image.getBounds(); builder.append("\" style=\"vertical-align:middle;\" "); builder.append(" width=\""); builder.append(bounds.width); builder.append("\" "); builder.append(" height=\""); builder.append(bounds.height); builder.append("\"/>"); added = true; } } String text = labelProvider.getText(element); if (text != null && text.length() != 0) { Font vaFont = labelProvider.getFont(element); builder.append("<span style=\""); if (vaFont != null && vaFont.getFontData().length > 0) { FontData fontData = vaFont.getFontData()[0]; if ((fontData.getStyle() & SWT.BOLD) != 0) { builder.append("font-weight:bold;"); } if ((fontData.getStyle() & SWT.ITALIC) != 0) { builder.append("font-style:italic;"); } builder.append("font-size:"); builder.append(fontData.getHeight()); builder.append("px;"); builder.append("font-family:"); builder.append(fontData.getName().replace('"', ' ')); builder.append(";"); } Color background = labelProvider.getBackground(element); if (background != null) { builder.append("background-color:"); builder.append( toHex(background.getRed(), background.getGreen(), background.getBlue())); builder.append(";"); } Color foreground = labelProvider.getForeground(element); if (foreground != null) { builder.append("color:"); builder.append( toHex(foreground.getRed(), foreground.getGreen(), foreground.getBlue())); builder.append(";"); } builder.append("\">"); builder.append(text); builder.append("</span>"); added = true; } if (added) { addBr = true; } } return builder.toString(); } }); if (hasAction) { final Image arrow = EJRWTImageRetriever.get("icons/left-arrow.png"); final TableViewerColumn actionColumn = factory.createColumn("HTML-ACTION", 40, new ColumnLabelProvider() { @Override public String getText(Object element) { return ""; } @Override public Image getImage(Object element) { return arrow; } }); actionColumn.getColumn().setAlignment(SWT.RIGHT); actionColumn.setEditingSupport(new EditingSupport(_tableViewer) { protected void setValue(Object arg0, Object arg1) { // ignore } protected Object getValue(Object arg0) { // ignore return null; } protected CellEditor getCellEditor(Object arg0) { return new CellEditor() { @Override protected void doSetValue(Object arg0) { // ignore } @Override protected void doSetFocus() { // ignore } @Override protected Object doGetValue() { // ignore return null; } @Override protected Control createControl(Composite parent) { Label action = new Label(parent, SWT.NONE); action.setImage(arrow); return action; } }; } protected boolean canEdit(Object arg0) { _block.executeActionCommand(doubleClickActionCommand, EJScreenType.MAIN); return false; } }); } table.addControlListener(new ControlAdapter() { @Override public void controlResized(ControlEvent e) { int offset = hasAction ? 50 : 10; if (table.getSize().x > offset) dataColumn.getColumn().setWidth(table.getSize().x - offset); } }); } table.addFocusListener(new FocusListener() { public void focusLost(FocusEvent arg0) { setHasFocus(false); } public void focusGained(FocusEvent arg0) { setHasFocus(true); } }); // setHasFocus(true); _mainPane.addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent arg0) { if (!table.isFocusControl()) setHasFocus(true); } }); table.addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent arg0) { if (!table.isFocusControl()) setHasFocus(true); } }); final EJBlockController blockController = _block; _tableViewer.setContentProvider(filteredContentProvider = new FilteredContentProvider() { boolean matchItem(EJDataRecord rec) { if (filter != null && filter.trim().length() > 0) { for (ColumnLabelProvider filterTextProvider : nodeTextProviders) { String text = filterTextProvider.getText(rec); if ((text != null) && text.toLowerCase().contains(filter.toLowerCase())) { return true; } } } return false; } public void inputChanged(Viewer arg0, Object arg1, Object arg2) { tableBaseRecords.clear(); if (arg2 != null && arg2.equals(filter) && filter.trim().length() > 0) { // filter for (EJDataRecord record : _block.getBlock().getRecords()) { if (matchItem(record)) tableBaseRecords.add(record); } } else { filter = null; if (filterTree != null) filterTree.clearText(); tableBaseRecords.addAll(_block.getBlock().getRecords()); } } public void dispose() { } public Object[] getElements(Object arg0) { return tableBaseRecords.toArray(); } }); _tableViewer.setInput(new Object()); selectRow(0); _tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent arg0) { EJDataRecord focusedRecord = getFocusedRecord(); if (focusedRecord != null) _block.newRecordInstance(focusedRecord); notifyStatus(); } }); }
From source file:org.polymap.wbv.ui.FlurstueckTableViewer.java
License:Open Source License
public FlurstueckTableViewer(PanelSite panelSite, Composite parent) { super(parent, /* SWT.VIRTUAL | SWT.V_SCROLL | SWT.FULL_SELECTION |*/ SWT.BORDER); this.panelSite = panelSite; IAppContext context = BatikApplication.instance().getContext(); context.propagate(this); suppressSelection();//w ww .ja v a 2 s . c om context.addListener(panelChangeListener, ev -> ev.getType().isOnOf(EventType.LIFECYCLE)); // listen to column/field changes EventManager.instance().subscribe(this, ev -> ev instanceof PropertyChangeEvent && displayed.values().contains(ev.getSource())); try { // suppress deferred loading to fix "empty table" issue // setContent( fs.getFeatures( this.baseFilter ) ); setContentProvider(new CompositesFeatureContentProvider()); // Action: delete addColumn(new FormFeatureTableColumn(descriptorFor("", String.class)).setWeight(1, 25) .setLabelProvider(new ColumnLabelProvider() { @Override public Image getImage(Object elm) { return WbvPlugin.images().svgImage("delete.svg", SvgImageRegistryHelper.NORMAL12); } @Override public String getText(Object elm) { return null; } @Override public String getToolTipText(Object elm) { return "Flurstck lschen"; } }).setEditing(new ActionCellEditor(elm -> { assert wb.isPresent(); Flurstueck fst = FeatureTableElement.entity(elm); fst.geloescht.set(true); refresh(); flurstueckDeleted = true; fieldChange(null); // waldbesitzer lschen, wenn (wirklich) kein flurstck mehr da if (wb.get().flurstuecke(null).isEmpty()) { uow.get().removeEntity(wb.get()); panelSite.toolkit().createSnackbar(Appearance.FadeIn, "Waldbesitzer wird beim Speichern <b>gelscht</b>!"); } }))); // Action: transfer addColumn(new FormFeatureTableColumn(descriptorFor("", String.class)).setWeight(1, 30) .setLabelProvider(new ColumnLabelProvider() { @Override public Image getImage(Object elm) { return WbvPlugin.images().svgImage("transfer.svg", SvgImageRegistryHelper.NORMAL12); } @Override public String getText(Object elm) { return null; } @Override public String getToolTipText(Object elm) { return "Eigentumsbergang: an einem anderen Waldbesitzer bertragen"; } }).setEditing(new ActionCellEditor(elm -> { Flurstueck fst = FeatureTableElement.entity(elm); selected.set(fst); BatikApplication.instance().getContext().openPanel(panelSite.path(), EigentumsuebergangPanel.ID); }))); // Gemarkung String propName = Flurstueck.TYPE.gemarkung.info().getName(); addColumn(new FormFeatureTableColumn(descriptorFor(propName, Gemarkung.class)).setWeight(6, 80) .setLabelsAndValidation(new DefaultTableValidator<Object, Gemarkung>() { @Override public Object transform2Field(Gemarkung gmk, ValidatorSite site) throws Exception { if (site.isEditing()) { return gmk; } else { //Flurstueck flst = FeatureTableElement.entity( site.element() ); String result = gmk != null ? gmk.label() : "-keine Gemarkung-"; //"WVK: " + flst.wvkGemarkung.get() + "/" + flst.wvkGemeinde.get(); return StringUtils.abbreviate(result, 30); } } @Override public Gemarkung transform2Model(Object fieldValue, ValidatorSite site) throws Exception { return fieldValue != null ? uow.get().entity((Gemarkung) fieldValue) : null; } }).setEditing(new PicklistFormField(Gemarkung.all.get())) .setSortable(new Comparator<IFeatureTableElement>() { public int compare(IFeatureTableElement e1, IFeatureTableElement e2) { return label(e1).compareTo(label(e2)); } protected String label(IFeatureTableElement elm) { Gemarkung gmk = (Gemarkung) elm.getValue(propName); return gmk != null ? gmk.label() : ""; } })).sort(SWT.DOWN); // Flurstcksnummer addColumn(new FormFeatureTableColumn(descriptorFor(Flurstueck.TYPE.zaehlerNenner)).setWeight(3, 50) .setHeader("Nr.") .setLabelsAndValidation(AND(new NotEmptyValidator().forTable(), new AenderungValidator(), new NummerValidator(), new FlurstueckExistsValidator())) .setEditing(new StringFormField())); // Flche NumberValidator flaecheValidator = new NumberValidator(Double.class, Locale.GERMANY, 10, 4, 1, 4); addColumn(new FormFeatureTableColumn(descriptorFor(Flurstueck.TYPE.flaeche)).setWeight(3, 50) .setHeader("Flche\n(in ha)") .setLabelsAndValidation(AND(flaecheValidator.forTable(), new AenderungValidator())) .setEditing(new StringFormField()).setSortable(true)); // davon Wald addColumn(new FormFeatureTableColumn(descriptorFor(Flurstueck.TYPE.flaecheWald)).setWeight(3, 50) .setHeader("Wald\n(in ha)") .setLabelsAndValidation( AND(new WaldflaecheValidator(flaecheValidator), new AenderungValidator())) .setEditing(new StringFormField()).setSortable(true)); // nderungsdatum addColumn(new FormFeatureTableColumn(descriptorFor(Flurstueck.TYPE.aenderung)).setWeight(4, 80) .setHeader("nderung").setLabelsAndValidation(new DateValidator().forTable())); // Bemerkung FormFeatureTableColumn bcolumn = new FormFeatureTableColumn(descriptorFor(Flurstueck.TYPE.bemerkung)); bcolumn.setWeight(11, 120); bcolumn.setLabelsAndValidation(new AenderungValidator()); bcolumn.setEditing(new CellEditor() { private String value; private Text txt; @Override protected Control createControl(Composite _parent) { return null; } @Override protected void doSetFocus() { } @Override protected Object doGetValue() { return value; } @Override protected void doSetValue(Object newValue) { this.value = (String) newValue; } @Override public void activate() { Shell appShell = BatikApplication.shellToParentOn(); new SimpleDialog().centerOn.put(appShell).title.put("Bemerkung").setContents(dialogParent -> { dialogParent.setLayout(FormLayoutFactory.defaults().create()); txt = on(new Text(dialogParent, SWT.MULTI | SWT.WRAP | SWT.BORDER)).fill().width(350) .height(150).control(); txt.setText(value != null ? value : ""); txt.setFocus(); }).addOkAction("BERNEHMEN", () -> { value = txt.getText(); fireApplyEditorValue(); EventManager.instance().publish(new PropertyChangeEvent(bcolumn, "bemerkung", value, null)); return null; }).addCancelAction("ABBRECHEN").open(); } }); addColumn(bcolumn); setInput(wb.get().flurstuecke(revier.get())); // /* Register for property change events */ // EventManager.instance().subscribe( this, new EventFilter<PropertyChangeEvent>() { // public boolean apply( PropertyChangeEvent input ) { // return input.getSource() instanceof Flurstueck; // } // }); } catch (Exception e) { throw new RuntimeException(e); } }
From source file:tinyos.dlrc.make.dialog.pages.IncludePage.java
License:Open Source License
private TableViewerColumn createColumnInclude() { TableViewerColumn column = new TableViewerColumn(includeList, SWT.CENTER, 1); column.getColumn().setMoveable(false); column.getColumn().setResizable(true); column.getColumn().setWidth(100);/* w w w. j av a 2s .co m*/ column.getColumn().setText("Include"); column.getColumn().setToolTipText("How source files can include files of this directory.\n" + "- never: the files cannot be included.\n" + "- source: the files can be included with '#include \"file.h\"'.\n" + "- system: the files can be included with '#include \"file.h\"' and with '#include <file.h>'."); column.setEditingSupport(new EditingSupport(includeList) { private CellEditor editor = new CellEditor() { private int value = 0; @Override protected Control createControl(Composite parent) { return null; } @Override protected Object doGetValue() { return Integer.valueOf(value); } @Override protected void doSetFocus() { // ignore } @Override protected void doSetValue(Object value) { this.value = (Integer) value; } @Override public void activate() { value = (value + 1) % 3; fireApplyEditorValue(); } }; @Override protected boolean canEdit(Object element) { return !((TableEntry) element).isFile(); } @Override protected CellEditor getCellEditor(Object element) { return editor; } @Override protected Object getValue(Object element) { switch (((TableEntry) element).include) { case NONE: return 0; case SOURCE: return 1; case SYSTEM: return 2; default: return 0; } } @Override protected void setValue(Object element, Object value) { Include include = Include.NONE; switch ((Integer) value) { case 0: include = Include.NONE; break; case 1: include = Include.SOURCE; break; case 2: include = Include.SYSTEM; break; default: throw new IllegalArgumentException(); } ((TableEntry) element).include = include; contentProvider.refresh((TableEntry) element); } }); column.setLabelProvider(new CellLabelProvider() { @Override public void update(ViewerCell cell) { TableEntry entry = (TableEntry) cell.getElement(); if (entry.isFile()) { cell.setText("n/a"); } else { switch (entry.include) { case NONE: cell.setText("never"); break; case SOURCE: cell.setText("source"); break; case SYSTEM: cell.setText("system"); break; } } } }); return column; }