void onSelection(Event e) { Event event = new Event(); TableItem tableItem = (TableItem)e.item; TableTreeItem item = getItem(tableItem); event.item = item; if (e.type == SWT.Selection && e.detail == SWT.CHECK && item != null) { event.detail = SWT.CHECK; item.checked = tableItem.getChecked(); } notifyListeners(e.type, event); } /**
@Override public void refresh() { super.refresh(); tt.removeAll(); TypeSystemDescription tsdFull = getMergedTypeSystemDescription(); TypeDescription[] tdsFull = tsdFull.getTypes(); if (null != tdsFull) { for (int i = 0; i < tdsFull.length; i++) { addTypeToGUI(tdsFull[i]); } } if (tt.getItemCount() > 0) tt.setSelection(new TableTreeItem[] { tt.getItems()[0] }); packTable(tt.getTable()); enable(); }
@Override public void enable() { jcasGenButton.setEnabled(tt.getItemCount() > 0); TypeSystemDescription tsd = getTypeSystemDescription(); exportButton.setEnabled(false); if (null != tsd) { TypeDescription[] tsa = tsd.getTypes(); if (null != tsa) exportButton.setEnabled(tsa.length > 0); } if (isAggregate()) { addTypeButton.setEnabled(false); addButton.setEnabled(false); editButton.setEnabled(false); removeButton.setEnabled(false); } else { addTypeButton.setEnabled(true); boolean editable = tt.getSelectionCount() == 1 && isLocalItem(tt.getSelection()[0]); addButton.setEnabled(editable); editButton.setEnabled(editable); removeButton.setEnabled(editable); } }
super(tableTree.getTable()); this.tableTree = tableTree; tableTree.addTreeListener(treeListener);
/** * New table tree. * * @param parent the parent * @param style SWT.SINGLE SWT.MULTI SWT.CHECK SWT.FULL_SELECTION * @return the TableTree */ protected TableTree newTableTree(Composite parent, int style) { TableTree tt = new TableTree(parent, style); tt.setLayoutData(new GridData(GridData.FILL_BOTH)); toolkit.adapt(tt, true, true); tt.addListener(SWT.Selection, this); tt.getTable().addListener(SWT.KeyUp, this); // for delete key tt.getTable().addListener(SWT.MouseDoubleClick, this); // for edit tt.addListener(SWT.Expand, this); tt.addListener(SWT.Collapse, this); // Make the TableTree's border visible since TableTree is NOT a widget supported // by FormToolkit. Needed by RedHat Linux tt.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER); return tt; }
@Override public void enable() { addCapabilityButton.setEnabled(true); boolean selectOK = tt.getSelectionCount() == 1; TableTreeItem item = selectOK ? tt.getSelection()[0] : null; int kind = selectOK ? getItemKind(item) : 0; addLangButton.setEnabled(selectOK); addTypeButton.setEnabled(selectOK); addSofaButton.setEnabled(selectOK); addEditFeatureButton.setEnabled((kind & (FEAT + TYPE)) > 0); editButton.setEnabled((kind & (SOFA_ITEM + LANG_ITEM + FEAT + TYPE)) > 0); removeButton.setEnabled((kind & (CS + SOFA_ITEM + LANG_ITEM + FEAT + TYPE)) > 0); }
int tableIndex = parent.addItem(this, index); tableItem = new TableItem(parent.getTable(), style, tableIndex); tableItem.setData(TableTree.ITEMID, this); addCheck(); int itemHeight = parent.getItemHeight(); parent.sizeImage = new Image(parent.getDisplay(), itemHeight, itemHeight); GC gc = new GC (parent.sizeImage); gc.setBackground(parent.getBackground()); gc.fillRectangle(0, 0, itemHeight, itemHeight); gc.dispose();
void onKeyDown (Event e) { TableTreeItem[] selection = getSelection(); if (selection.length == 0) return; TableTreeItem item = selection[0]; int type = 0; if (e.keyCode == SWT.ARROW_RIGHT || e.keyCode == SWT.ARROW_LEFT) { int trailKey = (getStyle() & SWT.MIRRORED) != 0 ? SWT.ARROW_LEFT : SWT.ARROW_RIGHT; if (e.keyCode == trailKey) { if (item.getItemCount() == 0) return; TableTreeItem newSelection = item.getItems()[0]; table.setSelection(new TableItem[]{newSelection.tableItem}); showItem(newSelection); type = SWT.Selection; } else { Event event = new Event(); event.item = item; notifyListeners(type, event);
/** * Adds the listener to the collection of listeners who will * be notified when an item in the receiver is expanded or collapsed * by sending it one of the messages defined in the <code>TreeListener</code> * interface. * * @param listener the listener which should be notified * * @exception IllegalArgumentException <ul> * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> * </ul> * @exception SWTException <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> * * @see TreeListener * @see #removeTreeListener */ public void addTreeListener(TreeListener listener) { checkWidget(); if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT); TypedListener typedListener = new TypedListener (listener); addListener (SWT.Expand, typedListener); addListener (SWT.Collapse, typedListener); } private static int checkStyle (int style) {
/** * Finish action pack. */ private void finishActionPack() { packTable(tt.getTable()); finishAction(); }
/** * Returns the item at the given point in the receiver * or null if no such item exists. The point is in the * coordinate system of the receiver. * * @param point the point used to locate the item * @return the item at the given point * * @exception IllegalArgumentException <ul> * <li>ERROR_NULL_ARGUMENT - if the point is null</li> * </ul> * @exception SWTException <ul> * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> * </ul> */ public TableTreeItem getItem(Point point) { checkWidget(); TableItem item = table.getItem(point); if (item == null) return null; return getItem(item); } TableTreeItem getItem(TableItem tableItem) {
@Override public void layout () { if (tableTree == null || tableTree.isDisposed()) return; if (item == null || item.isDisposed()) return; Table table = tableTree.getTable(); int columnCount = table.getColumnCount(); if (columnCount == 0 && column != 0) return; if (columnCount > 0 && (column < 0 || column >= columnCount)) return; super.layout(); } }
super(parent, checkStyle (style)); table = new Table(this, style); Listener tableListener = new Listener() { SWT.FocusIn}; for (int i = 0; i < events.length; i++) { addListener(events[i], listener);
/** * Removes all associations between the TableTreeEditor and the cell in the table tree. The * TableTree and the editor Control are <b>not</b> disposed. */ public void dispose () { if (tableTree != null && !tableTree.isDisposed()) { Table table = tableTree.getTable(); if (table != null && !table.isDisposed()) { if (this.column > -1 && this.column < table.getColumnCount()){ TableColumn tableColumn = table.getColumn(this.column); tableColumn.removeControlListener(columnListener); } } if (treeListener != null) tableTree.removeTreeListener(treeListener); } treeListener = null; columnListener = null; tableTree = null; item = null; column = -1; super.dispose(); } /**
@Override public void enable() { boolean selected = tt.getSelectionCount() == 1; TableTreeItem item = null; TableTreeItem parent = null; if (selected) { item = tt.getSelection()[0]; parent = item.getParentItem(); boolean notBuiltInSelected = (selected && item != tt.getItems()[0]); notBuiltInSelected &= !(null != parent && parent == tt.getItems()[0]); editButton.setEnabled(notBuiltInSelected); removeButton.setEnabled(notBuiltInSelected); exportButton.setEnabled(tt.getItemCount() > 1); // always one "built-in"
@Override protected int getItemCount(Control widget) { return ((TableTree) widget).getItemCount(); }
/** * Handle add capability. */ private void handleAddCapability() { Capability newCset = addCapabilitySet(); // update the GUI TableTreeItem item = new TableTreeItem(tt, SWT.NONE); item.setText(CAPABILITY_SET); item.setData(newCset); createLanguageHeaderGui(item); createSofaHeaderGui(item); item.setExpanded(true); tt.setSelection(new TableTreeItem[] { item }); if (tt.getItemCount() == 1) tt.getTable().getColumn(TITLE_COL).pack(); finishAction(); }
@Override protected Item[] getSelection(Control widget) { return ((TableTree) widget).getSelection(); }
tt.getTable().setSelection(tt.getTable().getItemCount() - 1); packTable(tt.getTable()); setFileDirty(); } else if (event.widget == addKeyButton) { if (notAllowed("Adding an Index")) return; TableTreeItem parent = tt.getSelection()[0]; if (null != parent.getParentItem()) parent = parent.getParentItem(); TableTreeItem item = tt.getSelection()[0]; if (foolingAroundWithAnnotationIndex(item)) return; tt.getTable().setSelection(tt.getTable().getSelectionIndex() - 1); item.dispose(); setFileDirty(); if (notAllowed("Adding an Index")) return; if (tt.getSelectionCount() != 1) return; TableTreeItem item = tt.getSelection()[0]; if (foolingAroundWithAnnotationIndex(item)) return; packTable(tt.getTable()); setFileDirty();
@Override public void handleEvent(Event event) { if (event.type == SWT.Expand || event.type == SWT.Collapse) { pack04(); return; } if (event.widget == addCapabilityButton) { handleAddCapability(); enable(); return; } TableTreeItem selItem = tt.getSelection()[0]; int itemKind = getItemKind(selItem); if (event.widget == addLangButton) { handleAddLang(selItem, itemKind); } else if (event.widget == addTypeButton) { handleAddType(selItem, itemKind); } else if (event.widget == addSofaButton) { handleAddSofa(selItem, itemKind); } else if (event.widget == addEditFeatureButton) { handleAddEditFeature(selItem, itemKind); } else if (event.widget == editButton || event.type == SWT.MouseDoubleClick) { handleEdit(selItem, itemKind); } else if (event.widget == removeButton || (event.widget == tt.getTable() && event.type == SWT.KeyUp && event.character == SWT.DEL)) { handleRemove(selItem, itemKind); } enable(); }