List of usage examples for org.eclipse.jface.viewers ITableLabelProvider ITableLabelProvider
ITableLabelProvider
From source file:org.eclipse.ui.tests.statushandlers.StatusDialogManagerTest.java
License:Open Source License
public void testNonNullLabelProvider() { try {// ww w . j a v a 2 s. co m final boolean[] called = new boolean[] { false }; wsdm.setStatusListLabelProvider(new ITableLabelProvider() { public Image getColumnImage(Object element, int columnIndex) { return null; } public String getColumnText(Object element, int columnIndex) { called[0] = true; return ""; } public void addListener(ILabelProviderListener listener) { } public void dispose() { } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } }); wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), true); assertTrue(called[0]); } catch (Exception e) { fail(); } }
From source file:org.eclipse.ui.views.markers.internal.MarkerResolutionDialog.java
License:Open Source License
/** * Create the table for the markers//*from w w w . jav a2 s . co m*/ * * @param control */ private void createMarkerTable(Composite control) { markersTable = CheckboxTableViewer.newCheckList(control, SWT.BORDER | SWT.V_SCROLL); createTableColumns(); markersTable.setContentProvider(new IStructuredContentProvider() { /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ public void dispose() { } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ public Object[] getElements(Object inputElement) { IMarkerResolution selected = getSelectedResolution(); if (selected == null) { return new Object[0]; } if (markerMap.containsKey(selected)) { return ((Collection) markerMap.get(selected)).toArray(); } return new IMarker[] { originalMarker }; } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, * java.lang.Object, java.lang.Object) */ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); markersTable.setLabelProvider(new ITableLabelProvider() { /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, * int) */ public Image getColumnImage(Object element, int columnIndex) { if (columnIndex == 0) return Util.getImage(((IMarker) element).getAttribute(IMarker.SEVERITY, -1)); return null; } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, * int) */ public String getColumnText(Object element, int columnIndex) { if (columnIndex == 0) return Util.getResourceName((IMarker) element); int line = ((IMarker) element).getAttribute(IMarker.LINE_NUMBER, -1); if (line < 0) { return MarkerMessages.Unknown; } return NLS.bind(MarkerMessages.label_lineNumber, Integer.toString(line)); } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener) */ public void addListener(ILabelProviderListener listener) { // do nothing } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose() */ public void dispose() { // do nothing } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, * java.lang.String) */ public boolean isLabelProperty(Object element, String property) { return false; } /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener) */ public void removeListener(ILabelProviderListener listener) { // do nothing } }); markersTable.addCheckStateListener(new ICheckStateListener() { /* * (non-Javadoc) * * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent) */ public void checkStateChanged(CheckStateChangedEvent event) { if (event.getChecked() == true) { setComplete(true); } else { setComplete(markersTable.getCheckedElements().length > 0); } } }); markersTable.setInput(this); markersTable.setAllChecked(true); }
From source file:org.eclipse.worldcupforecast.parts.impl.WorldCupForecastPlayersRatingPropertiesEditionPartImpl.java
License:Open Source License
/** * @param container//from w w w. jav a 2 s . c o m * */ protected void createRatingTableComposition(Composite container) { Composite tableContainer = new Composite(container, SWT.NONE); GridLayout tableContainerLayout = new GridLayout(); GridData tableContainerData = new GridData(GridData.FILL_BOTH); tableContainerData.horizontalSpan = 3; tableContainer.setLayoutData(tableContainerData); tableContainerLayout.numColumns = 2; tableContainer.setLayout(tableContainerLayout); org.eclipse.swt.widgets.Table tableRating = new org.eclipse.swt.widgets.Table(tableContainer, SWT.FULL_SELECTION); tableRating.setHeaderVisible(true); GridData gdRating = new GridData(); gdRating.grabExcessHorizontalSpace = true; gdRating.horizontalAlignment = GridData.FILL; gdRating.grabExcessVerticalSpace = true; gdRating.verticalAlignment = GridData.FILL; tableRating.setLayoutData(gdRating); tableRating.setLinesVisible(true); // Start of user code for columns definition for Rating TableColumn name = new TableColumn(tableRating, SWT.NONE); name.setWidth(80); name.setText("Label"); //$NON-NLS-1$ // End of user code rating = new TableViewer(tableRating); rating.setContentProvider(new ArrayContentProvider()); rating.setLabelProvider(new ITableLabelProvider() { //Start of user code for label provider definition for Rating public String getColumnText(Object object, int columnIndex) { AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory); if (object instanceof EObject) { switch (columnIndex) { case 0: return labelProvider.getText(object); } } return ""; //$NON-NLS-1$ } public Image getColumnImage(Object element, int columnIndex) { return null; } //End of user code public void addListener(ILabelProviderListener listener) { } public void dispose() { } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } }); rating.getTable().addListener(SWT.MouseDoubleClick, new Listener() { public void handleEvent(Event event) { editRating(); } }); GridData ratingData = new GridData(GridData.FILL_HORIZONTAL); ratingData.minimumHeight = 120; ratingData.heightHint = 120; rating.getTable().setLayoutData(ratingData); createRatingPanel(tableContainer); }
From source file:org.eclipse.worldcupforecast.parts.impl.WorldCupGroupPropertiesEditionPartImpl.java
License:Open Source License
/** * @param container//from ww w. j a v a2 s. c o m * */ protected void createTeamsTableComposition(Composite container) { Composite tableContainer = new Composite(container, SWT.NONE); GridLayout tableContainerLayout = new GridLayout(); GridData tableContainerData = new GridData(GridData.FILL_BOTH); tableContainerData.horizontalSpan = 3; tableContainer.setLayoutData(tableContainerData); tableContainerLayout.numColumns = 2; tableContainer.setLayout(tableContainerLayout); org.eclipse.swt.widgets.Table tableTeams = new org.eclipse.swt.widgets.Table(tableContainer, SWT.FULL_SELECTION); tableTeams.setHeaderVisible(true); GridData gdTeams = new GridData(); gdTeams.grabExcessHorizontalSpace = true; gdTeams.horizontalAlignment = GridData.FILL; gdTeams.grabExcessVerticalSpace = true; gdTeams.verticalAlignment = GridData.FILL; tableTeams.setLayoutData(gdTeams); tableTeams.setLinesVisible(true); // Start of user code for columns definition for Teams TableColumn name = new TableColumn(tableTeams, SWT.NONE); name.setWidth(80); name.setText("Label"); //$NON-NLS-1$ // End of user code teams = new TableViewer(tableTeams); teams.setContentProvider(new ArrayContentProvider()); teams.setLabelProvider(new ITableLabelProvider() { //Start of user code for label provider definition for Teams public String getColumnText(Object object, int columnIndex) { AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory); if (object instanceof EObject) { switch (columnIndex) { case 0: return labelProvider.getText(object); } } return ""; //$NON-NLS-1$ } public Image getColumnImage(Object element, int columnIndex) { return null; } //End of user code public void addListener(ILabelProviderListener listener) { } public void dispose() { } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } }); teams.getTable().addListener(SWT.MouseDoubleClick, new Listener() { public void handleEvent(Event event) { editTeams(); } }); GridData teamsData = new GridData(GridData.FILL_HORIZONTAL); teamsData.minimumHeight = 120; teamsData.heightHint = 120; teams.getTable().setLayoutData(teamsData); createTeamsPanel(tableContainer); }
From source file:org.eclipse.wst.common.snippets.internal.ui.SnippetVariableTableViewer.java
License:Open Source License
public Control createContents(Composite parent) { // pity we can't just use a PropertySheetPage, but the column headers // aren't customizable fTableViewer = new TableViewer(new Table(parent, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER)); // GridData data = new GridData(GridData.FILL_BOTH); // fTableViewer.getTable().setLayoutData(data); fTableViewer.getTable().setHeaderVisible(true); fTableViewer.getTable().setLinesVisible(true); fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { ISelection sel = event.getSelection(); if (sel != null && !sel.isEmpty() && sel instanceof IStructuredSelection) fSelection = (ISnippetVariable) ((IStructuredSelection) sel).getFirstElement(); else//from w w w. j a v a 2 s .co m fSelection = null; fireSelectionChanged(event); } }); fTableViewer.setContentProvider(new ArrayContentProvider()); fTableViewer.setLabelProvider(new ITableLabelProvider() { public void addListener(ILabelProviderListener listener) { } public void dispose() { } public Image getColumnImage(Object element, int columnIndex) { return null; } public String getColumnText(Object element, int columnIndex) { if (element == null) return null; SnippetVariable var = (SnippetVariable) element; if (columnIndex == 0) return var.getId(); else if (columnIndex == 1) return (String) fValues.get(var.getId()); return ""; //$NON-NLS-1$ } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } }); TableLayout tlayout = new TableLayout(); tlayout.addColumnData(new ColumnWeightData(35, true)); tlayout.addColumnData(new ColumnWeightData(65, true)); fTableViewer.getTable().setLayout(tlayout); // Create the Host column TableColumn tc1 = new TableColumn(fTableViewer.getTable(), SWT.NONE); tc1.setText("Variable ID"); //$NON-NLS-1$ tc1.setResizable(true); tc1.setWidth(40); TableColumn tc2 = new TableColumn(fTableViewer.getTable(), SWT.NONE); tc2.setText("Value"); //$NON-NLS-1$ tc2.setResizable(true); tc2.setWidth(40); fTableViewer.setCellEditors(new CellEditor[] { new TextCellEditor(fTableViewer.getTable()), new TextCellEditor(fTableViewer.getTable()) }); fTableViewer.setColumnProperties(new String[] { "id", "value" }); //$NON-NLS-1$ //$NON-NLS-2$ ICellModifier cellmodifier = new ICellModifier() { public boolean canModify(Object element, String property) { return property.equals("value"); //$NON-NLS-1$ } public Object getValue(Object element, String property) { if (property.equals("id")) //$NON-NLS-1$ return ((SnippetVariable) element).getId(); else if (property.equals("value")) //$NON-NLS-1$ return fValues.get(((SnippetVariable) element).getId()); return ""; //$NON-NLS-1$ } public void modify(Object element, String property, Object value) { TableItem item = (TableItem) element; SnippetVariable var = (SnippetVariable) item.getData(); if (property.equals("value")) { //$NON-NLS-1$ String oldValue = (String) fValues.get(var.getId()); fValues.put(var.getId(), value); item.setText(1, (String) value); fireValueChanged(new String(var.getId()), property, oldValue, new String((String) value)); } } }; fTableViewer.setCellModifier(cellmodifier); fTableViewer.setInput(getLibraryVariables()); refresh(); return getControl(); }
From source file:org.eclipselabs.changelog.ChangeLogView.java
License:Open Source License
protected TreeViewer createDatesTree(Composite parent) { final Tree tree = new Tree(parent, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL); tree.setHeaderVisible(true);/*w w w . ja va2s . c o m*/ tree.setLinesVisible(true); GridData data = new GridData(GridData.FILL_BOTH); tree.setLayoutData(data); TableLayout layout = new TableLayout(); tree.setLayout(layout); TreeViewer ret = new TreeViewer(tree); ret.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { return null; } public Object getParent(Object element) { return null; } public boolean hasChildren(Object element) { return false; } public Object[] getElements(Object inputElement) { if (inputElement instanceof Collection<?>) { return ((Collection<?>) inputElement).toArray(); } return new Object[0]; } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); ret.setLabelProvider(new ITableLabelProvider() { private final DateFormat format = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); public Image getColumnImage(Object element, int columnIndex) { if (columnIndex == 0) { return CVSChangeLogPlugin.getDefault().getImageRegistry() .get(CVSChangeLogPlugin.IMG_OBJ_DATE_TABLE); } return null; } public String getColumnText(Object element, int columnIndex) { ChangeLogEntry entry = (ChangeLogEntry) element; switch (columnIndex) { case 0: return format.format(entry.getDate()); case 1: return entry.getAuthor(); case 2: String msg = entry.getComment(); msg = msg.replace('\n', ' '); msg = msg.replace('\r', ' '); return msg; } return ""; } public void addListener(ILabelProviderListener listener) { } public void dispose() { } public boolean isLabelProperty(Object element, String property) { return true; } public void removeListener(ILabelProviderListener listener) { } }); // creation date TreeColumn col = new TreeColumn(tree, SWT.NONE); col.setResizable(true); col.setText("Date"); layout.addColumnData(new ColumnPixelData(150, true)); col.addSelectionListener(getColumnSelectionListener(ret, 0)); // author col = new TreeColumn(tree, SWT.NONE); col.setResizable(true); col.setText("Author"); layout.addColumnData(new ColumnPixelData(120, true)); col.addSelectionListener(getColumnSelectionListener(ret, 1)); //comment col = new TreeColumn(tree, SWT.NONE); col.setResizable(true); col.setText("Comment"); layout.addColumnData(new ColumnPixelData(500, true)); col.addSelectionListener(getColumnSelectionListener(ret, 2)); ret.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateSelection(event.getSelection()); } }); ret.setSorter(new ChangeLogEntrySorter()); setSort(ret, 0); setSort(ret, 0); String filter = CVSChangeLogPlugin.getDefault().getPreferenceStore().getString(PREFERENCE_FILTER); if (filter != null && filter.length() > 0) { ret.addFilter(new ChangeLogFilter(filter)); } return ret; }
From source file:org.eclipselabs.changelog.ChangeLogView.java
License:Open Source License
protected TreeViewer createFilesTree(Composite parent) { final Tree tree = new Tree(parent, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL); tree.setHeaderVisible(true);/*w ww . ja v a 2s . co m*/ tree.setLinesVisible(true); GridData data = new GridData(GridData.FILL_BOTH); tree.setLayoutData(data); TableLayout layout = new TableLayout(); tree.setLayout(layout); TreeViewer ret = new TreeViewer(tree); ret.setContentProvider(new ITreeContentProvider() { public Object[] getChildren(Object parentElement) { return null; } public Object getParent(Object element) { return null; } public boolean hasChildren(Object element) { return false; } public Object[] getElements(Object inputElement) { if (inputElement instanceof Collection<?>) { return ((Collection<?>) inputElement).toArray(); } return new Object[0]; } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); ret.setLabelProvider(new ITableLabelProvider() { private final Map<ImageDescriptor, Image> imageCache = new HashMap<ImageDescriptor, Image>(); public Image getColumnImage(Object element, int columnIndex) { FileEntry entry = (FileEntry) element; switch (columnIndex) { case 0: ImageDescriptor imageDesc = WorkbenchPlugin.getDefault().getEditorRegistry() .getImageDescriptor(entry.getReposFile()); Image image = imageCache.get(imageDesc); if (image == null) { image = imageDesc.createImage(); imageCache.put(imageDesc, image); } return image; case 2: if (entry.getPreviousRevision().length() == 0) { break; } //$FALL-THROUGH$ case 1: return CVSChangeLogPlugin.getDefault().getImageRegistry() .get(CVSChangeLogPlugin.IMG_OBJ_REMOTE_REVISION_TABLE); } return null; } public String getColumnText(Object element, int columnIndex) { FileEntry entry = (FileEntry) element; switch (columnIndex) { case 0: String filePath; switch (fileDisplayMode) { case ChangeLogPreferences.OPT_PROJECT_RELATIVE_PATH: filePath = entry.getResource().getFullPath().toString().substring(1); break; case ChangeLogPreferences.OPT_CVS_FULL_PATH: filePath = entry.getReposFile(); break; case ChangeLogPreferences.OPT_FILE_NAME: filePath = entry.getResource().getFullPath().lastSegment().toString(); break; default: throw new IllegalStateException("Invalid display option: " + fileDisplayMode); } return filePath; case 1: return entry.getRevision(); case 2: return entry.getPreviousRevision(); } return ""; } public void addListener(ILabelProviderListener listener) { } public void dispose() { for (Image image : imageCache.values()) { image.dispose(); } } public boolean isLabelProperty(Object element, String property) { return true; } public void removeListener(ILabelProviderListener listener) { } }); ret.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { compareMenu.setEnabled(!event.getSelection().isEmpty()); openMenu.setEnabled(!event.getSelection().isEmpty()); copyMenu.setEnabled(!event.getSelection().isEmpty()); } }); ret.addOpenListener(new IOpenListener() { public void open(OpenEvent event) { FileEntry entry = (FileEntry) ((IStructuredSelection) event.getSelection()).getFirstElement(); if (entry.getPreviousRevision().length() == 0) { openFileInEditor(entry); } else { openFileInCompare(entry); } } }); // file TreeColumn col = new TreeColumn(tree, SWT.NONE); col.setResizable(true); col.setText("File"); col.addSelectionListener(getColumnSelectionListener(ret, 0)); layout.addColumnData(new ColumnPixelData(450, true)); // revision col = new TreeColumn(tree, SWT.NONE); col.setResizable(true); col.setText("Revision"); col.addSelectionListener(getColumnSelectionListener(ret, 1)); layout.addColumnData(new ColumnPixelData(80, true)); // old revision col = new TreeColumn(tree, SWT.NONE); col.setResizable(true); col.setText("Previous Revision"); col.addSelectionListener(getColumnSelectionListener(ret, 2)); layout.addColumnData(new ColumnPixelData(80, true)); ret.setSorter(new FilesSorter()); setSort(ret, 0); return ret; }
From source file:org.gw4e.eclipse.property.table.StringCustomListModel.java
License:Open Source License
@Override protected ITableLabelProvider getLabelProvider() { return new ITableLabelProvider() { @Override//from www . j a v a 2 s. c o m public void addListener(ILabelProviderListener arg0) { } @Override public void dispose() { } @Override public boolean isLabelProperty(Object arg0, String arg1) { return false; } @Override public void removeListener(ILabelProviderListener arg0) { } @Override public Image getColumnImage(Object arg0, int arg1) { return null; } @Override public String getColumnText(Object arg0, int arg1) { String ret = (String) arg0; return ret; } }; }
From source file:org.hibernate.eclipse.console.views.QueryParametersPage.java
License:Open Source License
/** * This method initializes queryParametersTable * *//*from w ww .ja v a 2s . c o m*/ private void createQueryParametersTable() { GridData gridData = new org.eclipse.swt.layout.GridData(); gridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL; gridData.grabExcessVerticalSpace = true; gridData.grabExcessHorizontalSpace = true; gridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL; queryParametersTable = new Table(top, SWT.FULL_SELECTION); queryParametersTable.setHeaderVisible(true); queryParametersTable.setLayoutData(gridData); queryParametersTable.setLinesVisible(true); TableColumn nameColumn = new TableColumn(queryParametersTable, SWT.NONE); nameColumn.setWidth(100); nameColumn.setText(HibernateConsoleMessages.QueryParametersPage_name); TableColumn typeColumn = new TableColumn(queryParametersTable, SWT.NONE); typeColumn.setWidth(75); typeColumn.setText(HibernateConsoleMessages.QueryParametersPage_type); TableColumn valueColumn = new TableColumn(queryParametersTable, SWT.NONE); valueColumn.setWidth(100); valueColumn.setText(HibernateConsoleMessages.QueryParametersPage_value); TableColumn nullColumn = new TableColumn(queryParametersTable, SWT.NONE); nullColumn.setWidth(32); nullColumn.setText(HibernateConsoleMessages.QueryParametersPage_null); tableViewer = new TableViewer(queryParametersTable); tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (statusLabel != null) { Object firstElement = ((IStructuredSelection) tableViewer.getSelection()).getFirstElement(); if (firstElement instanceof ConsoleQueryParameter) { statusLabel.setText(HibernateConsoleMessages.QueryParametersPage_format + ((ConsoleQueryParameter) firstElement).getDefaultFormat()); } else { statusLabel.setText(""); //$NON-NLS-1$ } } } }); final List<IType> possibleTypes = new ArrayList<IType>( model.getService().newTypeFactory().getTypeFormats().keySet()); Collections.sort(possibleTypes, new Comparator<IType>() { public int compare(IType t1, IType t2) { return t1.getName().compareTo(t2.getName()); } }); tableViewer.setCellModifier(new ICellModifier() { public void modify(Object element, String property, Object value) { TableItem item = (TableItem) element; ConsoleQueryParameter cqp = (ConsoleQueryParameter) item.getData(); if (NAME_PROPERTY.equals(property)) { cqp.setName((String) value); } if (TYPE_PROPERTY.equals(property)) { Iterator<IType> iterator = possibleTypes.iterator(); int i = 0; while (iterator.hasNext()) { IType type = iterator.next(); if (i == ((Integer) value).intValue()) { if (!cqp.getTypeName().equals(type.getName())) { cqp.setType(type); cqp.setNull(); // have to reset to ensure it's working } break; } i++; } } if (VALUE_PROPERTY.equals(property)) { String[] inputStrings; if (value instanceof String[]) { inputStrings = (String[]) value; } else { inputStrings = new String[] { (String) value }; } Object[] values = new Object[inputStrings.length]; for (int i = 0; i < inputStrings.length; i++) { values[i] = cqp.convertStringToValue(inputStrings[i]); } if (values.length > 1) { cqp.setValue(values); } else if (values.length == 1) { cqp.setValue(values[0]); } else { cqp.setValue(null); } } if (NULL_PROPERTY.equals(property)) { if (cqp.isNull()) { cqp.setValue(cqp.convertStringToValue("")); // best attempt to "unnull" //$NON-NLS-1$ } else { cqp.setNull(); } } tableViewer.refresh(cqp); } public Object getValue(Object element, String property) { ConsoleQueryParameter cqp = (ConsoleQueryParameter) element; if (NAME_PROPERTY.equals(property)) { return cqp.getName(); } if (TYPE_PROPERTY.equals(property)) { Iterator<IType> iterator = possibleTypes.iterator(); String type = cqp.getTypeName(); int i = 0; while (iterator.hasNext()) { if (type.equals(iterator.next().getName())) { return Integer.valueOf(i); } i++; } } if (VALUE_PROPERTY.equals(property)) { return cqp.getStringValues(); } if (NULL_PROPERTY.equals(property)) { return Boolean.valueOf(cqp.isNull()); } return null; } public boolean canModify(Object element, String property) { return true; } }); tableViewer.setContentProvider(new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { return ((QueryInputModel) inputElement).getQueryParameters(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); String[] columnProperties = new String[] { NAME_PROPERTY, TYPE_PROPERTY, VALUE_PROPERTY, NULL_PROPERTY }; tableViewer.setColumnProperties(columnProperties); String[] valueTypes = new String[possibleTypes.size()]; Iterator<IType> iterator = possibleTypes.iterator(); int i = 0; while (iterator.hasNext()) { IType element = iterator.next(); valueTypes[i++] = element.getName(); } CellEditor[] editors = new CellEditor[columnProperties.length]; editors[0] = new TextCellEditor(queryParametersTable); editors[1] = new ComboBoxCellEditor(queryParametersTable, valueTypes, SWT.READ_ONLY); editors[2] = new StringArrayDialogCellEditor(queryParametersTable) { private Button b; public void activate() { Object param = ((IStructuredSelection) tableViewer.getSelection()).getFirstElement(); if (param instanceof ConsoleQueryParameter) { try { Integer.parseInt(((ConsoleQueryParameter) param).getName()); // "ordered" parameter doesn't allow list value // see also HQLQueryPage#setupParameters() b.setVisible(false); } catch (NumberFormatException nfe) { // "named" parameter allows parameter list value b.setVisible(true); } } }; protected org.eclipse.swt.widgets.Button createButton(Composite parent) { return b = super.createButton(parent); }; }; editors[3] = new CheckboxCellEditor(queryParametersTable); tableViewer.setCellEditors(editors); tableViewer.setLabelProvider(new ITableLabelProvider() { public void removeListener(ILabelProviderListener listener) { } public boolean isLabelProperty(Object element, String property) { return true; } public void dispose() { } public void addListener(ILabelProviderListener listener) { } public String getColumnText(Object element, int columnIndex) { ConsoleQueryParameter cqp = (ConsoleQueryParameter) element; switch (columnIndex) { case 0: return cqp.getName(); case 1: return cqp.getTypeName(); case 2: { String label = cqp.getStringValues()[0]; for (int j = 1; j < cqp.getStringValues().length; j++) { label += "|" + cqp.getStringValues()[j]; //$NON-NLS-1$ } return label; } case 3: return null; //cqp.isNull()?"X":""; default: return null; } } public Image getColumnImage(Object element, int columnIndex) { if (columnIndex == 3) { ConsoleQueryParameter cqp = (ConsoleQueryParameter) element; return cqp.isNull() ? EclipseImages.getImage(ImageConstants.CHECKBOX_FULL) : EclipseImages.getImage(ImageConstants.CHECKBOX_EMPTY); } else { return null; } } }); }
From source file:org.jboss.tools.common.model.ui.editors.dnd.composite.TagAttributesComposite.java
License:Open Source License
/** * //ww w . j av a 2 s.c om * @param parent * @param style * @param wizardModel */ public TagAttributesComposite(Composite parent, int style, IDropWizardModel wizardModel, boolean filtered, final Properties context) { super(parent, style); this.context = context; fFiltered = filtered; fWizardModel = wizardModel; fWizardModel.addPropertyChangeListener(this); addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { fWizardModel.removePropertyChangeListener(TagAttributesComposite.this); if (context != null) { context.clear(); } removeDisposeListener(this); } }); AttributeDescriptorValueProvider valueProvider = fWizardModel.getDropData().getValueProvider(); if (valueProvider != null) { valueProvider.initContext(context); } GridLayout layout = new GridLayout(); layout.marginWidth = 0; layout.marginHeight = 0; layout.numColumns = 1; setLayout(layout); GridData data = new GridData(GridData.FILL_BOTH); setLayoutData(data); final Table swtTable = new Table(this, SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE); data = new GridData(GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL); TableLayout tableLayout = new TableLayout(); tableViewer = new TagAttributesTableViewer(swtTable); swtTable.setLayout(tableLayout); swtTable.setLayoutData(data); swtTable.setHeaderVisible(true); swtTable.setLinesVisible(true); tableLayout.addColumnData(new ColumnPixelData(150)); TableColumn col = new TableColumn(swtTable, SWT.NONE); col.setText("Attribute name"); tableLayout.addColumnData(new ColumnPixelData(250)); col = new TableColumn(swtTable, SWT.NONE); col.setText("Value"); tableViewer.setColumnProperties(new String[] { "Name", "Value" }); //$NON-NLS-1$ //$NON-NLS-2$ tableViewer.setUseHashlookup(true); tableViewer.setComparer(new IElementComparer() { public boolean equals(Object a, Object b) { return a == b; } public int hashCode(Object element) { return element == null ? 0 : element.hashCode(); } }); tableViewer.setCellModifier(new ICellModifier() { public boolean canModify(Object element, String property) { return true; } public Object getValue(Object element, String property) { AttributeDescriptorValue attrDescr = (AttributeDescriptorValue) element; context.setProperty("attributeName", attrDescr.getName()); //$NON-NLS-1$ String tagName = "" + fWizardModel.getTagProposal().getName(); //$NON-NLS-1$ String prefix = fWizardModel.getTagProposal().getPrefix(); if (prefix != null && prefix.length() > 0 && !tagName.startsWith(prefix + ":")) { //$NON-NLS-1$ //$NON-NLS-2$ tagName = prefix + ":" + tagName; //$NON-NLS-1$ } context.setProperty("nodeName", tagName); //$NON-NLS-1$ ISelection s = fWizardModel.getDropData().getSelectionProvider().getSelection(); if (s instanceof TextSelection) { int offset = ((TextSelection) s).getOffset(); context.put("offset", new Integer(offset)); } return attrDescr.getValue() == null ? "" : attrDescr.getValue(); //$NON-NLS-1$ } public void modify(Object element, String property, Object value) { TableItem item = (TableItem) element; AttributeDescriptorValue attrDescr = (AttributeDescriptorValue) item.getData(); fWizardModel.setAttributeValue(attrDescr, value); if (tableViewer != null) { tableViewer.refresh(); } } }); ExtendedCellEditorProvider provider = createCellEditorProvider(); if (provider != null) { tableViewer.setCellEditors(new CellEditor[] { null, provider.createCellEditor(swtTable, context) }); } else { tableViewer.setCellEditors(new CellEditor[] { null, new TextCellEditor(swtTable) }); } tableViewer.getCellEditors()[1].addListener(new ICellEditorListener() { public void applyEditorValue() { } public void cancelEditor() { } public void editorValueChanged(boolean oldValidState, boolean newValidState) { // TODO Auto-generated method stub if (tableViewer.isCellEditorActive()) { IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection(); AttributeDescriptorValue attrValue = (AttributeDescriptorValue) selection.getFirstElement(); fWizardModel.setAttributeValue(attrValue, tableViewer.getCellEditors()[1].getValue()); } } }); tableViewer.setContentProvider(new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { return filterElements(); } private Object[] filterElements() { AttributeDescriptorValue[] value = fWizardModel.getAttributeValueDescriptors(); if (!isFiltered()) return value; List<AttributeDescriptorValue> filtered = new ArrayList<AttributeDescriptorValue>(); for (int i = 0; i < value.length; i++) { AttributeDescriptorValue value2 = value[i]; if (value2.isRequired() || value2.isPreferable()) { filtered.add(value2); } } return filtered.toArray(); } public void dispose() { } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); tableViewer.setLabelProvider(new ITableLabelProvider() { public static final int ATTRIBUTE_NAME_INDEX = 0; public static final int ATTRIBUTE_VALUE_INDEX = 1; public Image getColumnImage(Object element, int columnIndex) { return null; } public String getColumnText(Object element, int columnIndex) { AttributeDescriptorValue attrDescr = (AttributeDescriptorValue) element; switch (columnIndex) { case ATTRIBUTE_NAME_INDEX: if (attrDescr.isRequired()) { return attrDescr.getName(); } else if (attrDescr.isPreferable()) { return attrDescr.getName(); } else { return attrDescr.getName(); } case ATTRIBUTE_VALUE_INDEX: return attrDescr.getValue() == null ? "" : attrDescr.getValue().toString(); //$NON-NLS-1$ } throw new IllegalArgumentException("Wrong column index for LabelProvider"); //$NON-NLS-1$ } public void addListener(ILabelProviderListener listener) { } public void dispose() { } public boolean isLabelProperty(Object element, String property) { return false; } public void removeListener(ILabelProviderListener listener) { } }); tableViewer.setInput(new Object()); }