Example usage for org.eclipse.jface.viewers TableViewer getControl

List of usage examples for org.eclipse.jface.viewers TableViewer getControl

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TableViewer getControl.

Prototype

@Override
    public Control getControl() 

Source Link

Usage

From source file:net.karlmartens.ui.widget.GridChooser.java

License:Apache License

private static GridChooserItem getItem(TableViewer viewer, Point point) {
    final Rectangle r1 = viewer.getControl().getBounds();
    if (r1.contains(point)) {
        final Point clientPoint = new Point(point.x - r1.x, point.y - r1.y);
        final TableItem item = viewer.getTable().getItem(clientPoint);
        if (item != null) {
            return (GridChooserItem) item.getData();
        }//from w w w  . jav a  2  s.  c  om
    }

    return null;
}

From source file:net.officefloor.eclipse.common.dialog.input.impl.BeanListInput.java

License:Open Source License

/**
 * Obtains the check box image.//from   w  w w.  j  av  a2s  .  co  m
 * 
 * @param tableViewer
 *            {@link TableViewer}.
 * @param type
 *            Type of image.
 * @return {@link Image} for the check box.
 */
private Image getCheckboxImage(TableViewer tableViewer, boolean type) {

    /*
     * Method code derived from:
     * 
     * http://tom-eclipse-dev.blogspot.com.au/2007/01/tableviewers-and-
     * nativelooking.html
     */

    // Obtain the control for the table viewer
    Control control = tableViewer.getControl();

    // Obtain the image registry key
    String imageRegistryKey = (type ? "CHECKED" : "UNCHECKED");

    // Lazy create the image
    Image image = JFaceResources.getImageRegistry().get(imageRegistryKey);
    if (image != null) {
        return image;
    }

    // Colour to use for transparency
    Color greenScreen = new Color(control.getDisplay(), 222, 223, 224);

    // Create shell to screen capture the image
    Shell shell = new Shell(control.getShell(), SWT.NO_TRIM | SWT.NO_BACKGROUND);
    shell.setBackground(greenScreen);
    Button button = new Button(shell, SWT.CHECK);
    button.setBackground(greenScreen);
    button.setSelection(type);
    Point buttonSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT);

    // Stop image being stretched by width
    buttonSize.x = Math.max(buttonSize.x - 1, buttonSize.y - 1);
    buttonSize.y = Math.max(buttonSize.x - 1, buttonSize.y - 1);
    button.setSize(buttonSize);
    shell.setSize(buttonSize);

    // Remove focus highlighting
    button.setEnabled(false);

    // Open shell and take the screen shot
    shell.open();
    button.setEnabled(true); // re-enable
    while (shell.getDisplay().readAndDispatch()) {
        // Ensure open and displaying for screen shot
    }
    GC gc = new GC(shell);
    Image tempImage = new Image(control.getDisplay(), buttonSize.x, buttonSize.y);
    gc.copyArea(tempImage, 0, 0);
    gc.dispose();
    shell.close();

    // Make the background of image transparent
    ImageData imageData = tempImage.getImageData();
    imageData.transparentPixel = imageData.palette.getPixel(greenScreen.getRGB());

    // Create and register the image
    image = new Image(control.getDisplay(), imageData);
    JFaceResources.getImageRegistry().put(imageRegistryKey, image);

    // Clean up temporary image
    tempImage.dispose();

    // Return the image
    return image;
}

From source file:net.rim.ejde.internal.ui.editors.locale.ResourceEditor.java

License:Open Source License

public void doSave(IProgressMonitor monitor) {
    try {/* w  w  w. j a  v a 2  s.  c om*/
        _resources.save();

        // Check if package was changed.
        String rrhPackage = PackageUtils.getRRHPackageID(rrhFile);
        if (!_originalPackage.equals(rrhPackage)) {
            // Attempt to find a non linked rrhIFile
            IFile files[] = ResourcesPlugin.getWorkspace().getRoot()
                    .findFilesForLocation(new Path(rrhFile.getAbsolutePath()));
            IFile rrhIFile = null;
            for (IFile file : files) {
                if (!file.isLinked()) {
                    rrhIFile = file;
                    break;
                }
            }
            if (files.length != 0 && rrhIFile == null) {
                rrhIFile = files[0];
            }

            IJavaElement packageFolder = JavaCore.create(rrhIFile.getParent());
            IPackageFragmentRoot sourceFolder = (IPackageFragmentRoot) packageFolder.getParent();
            try {
                moveResources(rrhIFile,
                        sourceFolder.createPackageFragment(rrhPackage, true, new NullProgressMonitor()));
            } catch (Exception e) {
                _logger.error("doSave: error moving resources", e); //$NON-NLS-1$
            }
        }

        if (_wasDirty) {
            _wasDirty = false;
            firePropertyChange(IEditorPart.PROP_DIRTY);
        }

        // get eclipse workspace
        final IWorkspace workspace = ResourcesPlugin.getWorkspace();

        // get eclipse workspace description
        final IWorkspaceDescription workspaceDescription = workspace.getDescription();

        // get autoBuildFlag
        final boolean autoBuild = workspaceDescription.isAutoBuilding();
        IProject project = ((FileEditorInput) (this.getEditorInput())).getFile().getProject();

        // if autobuild is checked build eclipse project
        if (autoBuild) {
            try {
                project.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
            } catch (CoreException e) {
                e.printStackTrace();
            }
        }

        // We must refresh the project because we are using a JAR that uses File objects to save, instead of eclipse IFiles.
        project.refreshLocal(IProject.DEPTH_INFINITE, monitor);

    } catch (IOException e) {
        TableViewer viewer = getActiveResourceEditorPage().getTableViewer();
        Status status = new Status(IStatus.ERROR, ContextManager.PLUGIN_ID, IStatus.OK,
                "Unable to open file for writing.", e);
        ErrorDialog.openError(viewer.getControl().getShell(), "Error - Resource Editor", "Error saving file.",
                status);
        monitor.setCanceled(true);
    } catch (CoreException e) {
        _logger.error("doSave: error getting package", e); //$NON-NLS-1$
    }
}

From source file:net.sourceforge.sqlexplorer.dataset.DataSetTable.java

License:Open Source License

/**
 * Create a new table element for a resultset in a given composite.
 * //from   ww  w.  j av a 2s. c om
 * @param composite canvas to draw table on
 * @param dataSet content of table
 * @param info text displayed in bottem left corner under table
 */
public DataSetTable(Composite parent, final DataSet dataSet, String info) throws Exception {

    final Composite composite = new Composite(parent, SWT.FILL);

    GridLayout layout = new GridLayout();
    layout.numColumns = 2;
    layout.marginLeft = 0;
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 2;
    layout.marginWidth = 0;
    layout.marginHeight = 0;

    GridData gridData = new GridData(GridData.FILL_BOTH);
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;

    composite.setLayout(layout);
    composite.setLayoutData(gridData);

    // check column labels & types
    DataSet.Column[] columns = dataSet.getColumns();
    String[] columnLabels = new String[columns.length];
    for (int i = 0; i < columnLabels.length; i++)
        columnLabels[i] = columns[i].getCaption();

    if (columnLabels == null || columnLabels.length == 0)
        throw new Exception(Messages.getString("DataSetTable.errorInvalid"));

    // create table structure
    final TableViewer tableViewer = new TableViewer(composite,
            SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI | SWT.VIRTUAL);
    final Table table = tableViewer.getTable();

    tableViewer.setColumnProperties(columnLabels);
    table.setItemCount(dataSet.getRows().length);

    // create listener for sorting
    Listener sortListener = new Listener() {
        public void handleEvent(Event e) {

            // determine new sort column and direction
            TableColumn sortColumn = table.getSortColumn();
            TableColumn currentColumn = (TableColumn) e.widget;
            int dir = table.getSortDirection();
            if (sortColumn == currentColumn) {
                dir = dir == SWT.UP ? SWT.DOWN : SWT.UP;
            } else {
                table.setSortColumn(currentColumn);
                dir = SWT.UP;
            }

            // sort the data based on column and direction
            dataSet.sort(((Integer) currentColumn.getData("orignalColumnIndex")).intValue(), dir);//$NON-NLS-1$

            // update data displayed in table
            table.setSortDirection(dir);
            table.clearAll();
        }
    };

    GridData tGridData = new GridData();
    tGridData.horizontalSpan = 2;
    tGridData.grabExcessHorizontalSpace = true;
    tGridData.grabExcessVerticalSpace = true;
    tGridData.horizontalAlignment = SWT.FILL;
    tGridData.verticalAlignment = SWT.FILL;
    table.setLayoutData(tGridData);

    GridLayout tlayout = new GridLayout();
    tlayout.numColumns = 2;
    tlayout.marginLeft = 0;
    table.setLayout(tlayout);

    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    // store dataset for use in actions
    table.setData(dataSet);

    // add all column headers to our table
    for (int i = 0; i < columns.length; i++) {
        DataSet.Column colDef = columns[i];

        // add column header
        TableColumn column = new TableColumn(table, colDef.isRightJustify() ? SWT.RIGHT : SWT.LEFT);
        column.setText(colDef.getCaption());
        column.setMoveable(true);
        column.setResizable(true);
        column.addListener(SWT.Selection, sortListener);
        column.setData("orignalColumnIndex", new Integer(i));//$NON-NLS-1$
    }

    tableViewer.setContentProvider(new DataSetTableContentProvider());
    tableViewer.setLabelProvider(new DataSetTableLabelProvider());
    tableViewer.setInput(dataSet);

    // add status bar labels
    Label infoLabel = new Label(composite, SWT.NULL);
    infoLabel.setText(info);
    infoLabel.setLayoutData(new GridData(SWT.LEFT, SWT.NULL, true, false));

    final Label positionLabel = new Label(composite, SWT.NULL);
    positionLabel.setText("");//$NON-NLS-1$
    positionLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.NULL, true, false));

    // create a TableCursor to navigate around the table
    final TableCursor cursor = new TableCursor(table, SWT.NONE);
    cursor.setBackground(table.getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION));
    cursor.setForeground(table.getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT));
    cursor.setLayout(new FillLayout());
    cursor.setVisible(false);
    cursor.addSelectionListener(new SelectionAdapter() {
        // when the TableEditor is over a cell, select the corresponding row in 
        // the table
        public void widgetSelected(SelectionEvent e) {

            table.setSelection(new TableItem[] { cursor.getRow() });
            cursor.setVisible(true);

            // update label with row/column position
            positionLabel.setText(Messages.getString("DatabaseDetailView.Tab.RowPrefix") + " "
                    + (table.indexOf(cursor.getRow()) + 1)
                    + Messages.getString("DatabaseDetailView.Tab.ColumnPrefix") + " "
                    + (cursor.getColumn() + 1)); //$NON-NLS-2$ $NON-NLS-4$          
            positionLabel.getParent().layout();
            positionLabel.redraw();

            // Show the preview
            IWorkbenchPage page = SQLExplorerPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow()
                    .getActivePage();
            if (page != null) {
                DataPreviewView view = (DataPreviewView) page.findView(DataPreviewView.class.getName());
                if (view != null) {
                    TableItem row = cursor.getRow();
                    int column = cursor.getColumn();
                    DataSetRow dsRow = (DataSetRow) row.getData();
                    Object obj = dsRow.getRawObjectValue(column);
                    try {
                        view.previewData(null, obj);
                    } catch (ExplorerException ex) {
                        SQLExplorerPlugin.error(ex.getMessage(), ex);
                    }
                }
            }
        }
    });

    // add resize listener for cursor, to stop cursor from
    // taking strange shapes after being table is resized
    cursor.addControlListener(new ControlAdapter() {
        public void controlResized(ControlEvent e) {
            if (cursor != null) {
                if (cursor.getRow() == null) {
                    cursor.setVisible(false);
                } else {
                    cursor.layout();
                    cursor.redraw();
                    cursor.setVisible(true);
                }
            }
        }
    });

    table.addFocusListener(new FocusAdapter() {
        public void focusGained(FocusEvent e) {
            Table t = (Table) e.widget;
            if (t.getItemCount() != 0) {
                cursor.setVisible(true);
            }
        }
    });

    // refresh tab on F5, copy cell on CTRL-C, etc
    KeyListener keyListener = new DataSetTableKeyListener(parent, table, cursor);
    cursor.addKeyListener(keyListener);
    table.addKeyListener(keyListener);

    // add context menu to table & cursor
    final DataSetTableActionGroup actionGroup = new DataSetTableActionGroup(table, cursor);
    MenuManager menuManager = new MenuManager("DataSetTableContextMenu");//$NON-NLS-1$
    menuManager.setRemoveAllWhenShown(true);
    Menu contextMenu = menuManager.createContextMenu(table);

    tableViewer.getControl().setMenu(contextMenu);
    cursor.setMenu(contextMenu);

    menuManager.addMenuListener(new IMenuListener() {

        public void menuAboutToShow(IMenuManager manager) {
            actionGroup.fillContextMenu(manager);
        }
    });

    tableViewer.getTable().pack();
    for (TableColumn column : tableViewer.getTable().getColumns())
        column.pack();
}

From source file:net.sourceforge.sqlexplorer.dialogs.FilterStructureDialog.java

License:Open Source License

protected Control createDialogArea(Composite parent) {

    final Composite composite = (Composite) super.createDialogArea(parent);

    try {/*from  w  ww  . ja  va 2 s .co  m*/

        GridLayout layout = new GridLayout();
        layout.numColumns = 2;
        layout.marginLeft = 10;
        layout.marginRight = 15;
        layout.horizontalSpacing = 0;
        layout.verticalSpacing = 5;
        layout.marginWidth = 0;
        layout.marginHeight = 5;

        GridData gridData = new GridData(GridData.FILL_BOTH);
        gridData.grabExcessHorizontalSpace = true;
        gridData.grabExcessVerticalSpace = true;

        composite.setLayout(layout);
        composite.setLayoutData(gridData);

        GridData tGridData = new GridData(GridData.FILL_HORIZONTAL);
        tGridData.horizontalSpan = 2;
        tGridData.horizontalAlignment = SWT.FILL;
        tGridData.widthHint = 280;

        GridData t2GridData = new GridData(GridData.FILL_HORIZONTAL);
        t2GridData.horizontalSpan = 2;
        t2GridData.horizontalAlignment = SWT.FILL;
        t2GridData.verticalIndent = 15;

        GridData bData = new GridData();
        bData.horizontalIndent = 10;

        // add schema text
        Label selectSchemaLabel = new Label(composite, SWT.WRAP);
        selectSchemaLabel.setLayoutData(tGridData);
        selectSchemaLabel.setText(Messages.getString("FilterStructureDialog.SelectSchema"));

        // add schema selection table
        final TableViewer schemaTable = new TableViewer(composite, SWT.CHECK | SWT.BORDER | SWT.V_SCROLL);
        _schemaTable = schemaTable.getTable();
        GridData tableGridData = new GridData();
        tableGridData.horizontalSpan = 2;
        tableGridData.horizontalAlignment = SWT.FILL;
        tableGridData.heightHint = 50;
        tableGridData.grabExcessHorizontalSpace = true;
        schemaTable.getControl().setLayoutData(tableGridData);
        schemaTable.setContentProvider(new TableContentProvider());
        schemaTable.setInput(_db);

        // select correct values
        TableItem[] items = _schemaTable.getItems();
        if (_schemaFilter != null && items != null) {
            for (int i = 0; i < items.length; i++) {
                for (int j = 0; j < _schemaFilter.length; j++) {
                    if (_schemaFilter[j].equalsIgnoreCase(items[i].getText())) {
                        items[i].setChecked(true);
                    }
                }
            }
        }

        // add schema selection buttons
        Button selectAllSchemas = new Button(composite, SWT.PUSH);
        selectAllSchemas.setLayoutData(bData);
        selectAllSchemas.setText(Messages.getString("FilterStructureDialog.Buttons.SelectAll"));
        selectAllSchemas.addMouseListener(new MouseAdapter() {

            public void mouseUp(MouseEvent e) {

                Table table = schemaTable.getTable();
                TableItem[] items = table.getItems();
                if (items == null) {
                    return;
                }
                for (int i = 0; i < items.length; i++) {
                    items[i].setChecked(true);
                }
            }
        });

        Button deselectAllSchemas = new Button(composite, SWT.PUSH);
        deselectAllSchemas.setText(Messages.getString("FilterStructureDialog.Buttons.DeselectAll"));
        deselectAllSchemas.addMouseListener(new MouseAdapter() {

            public void mouseUp(MouseEvent e) {

                Table table = schemaTable.getTable();
                TableItem[] items = table.getItems();
                if (items == null) {
                    return;
                }
                for (int i = 0; i < items.length; i++) {
                    items[i].setChecked(false);
                }
            }
        });

        // add folder text
        Label selectFolderLabel = new Label(composite, SWT.WRAP);
        selectFolderLabel.setLayoutData(t2GridData);
        selectFolderLabel.setText(Messages.getString("FilterStructureDialog.SelectFolder"));

        // add folder selection table
        final TableViewer folderTable = new TableViewer(composite, SWT.CHECK | SWT.BORDER | SWT.V_SCROLL);
        _folderTable = folderTable.getTable();
        folderTable.getControl().setLayoutData(tableGridData);
        folderTable.setContentProvider(new TableContentProvider());
        if (_db.getChildNodes() != null && _db.getChildNodes().length != 0) {
            folderTable.setInput(_db.getChildNodes()[0]);
        }

        // select correct values
        items = _folderTable.getItems();
        if (_folderFilter != null && items != null) {
            for (int i = 0; i < items.length; i++) {
                for (int j = 0; j < _folderFilter.length; j++) {
                    if (_folderFilter[j].equalsIgnoreCase(items[i].getText())) {
                        items[i].setChecked(true);
                    }
                }
            }
        }

        // add folder selection buttons
        Button selectAllFolders = new Button(composite, SWT.PUSH);
        selectAllFolders.setLayoutData(bData);
        selectAllFolders.setText(Messages.getString("FilterStructureDialog.Buttons.SelectAll"));
        selectAllFolders.addMouseListener(new MouseAdapter() {

            public void mouseUp(MouseEvent e) {

                Table table = folderTable.getTable();
                TableItem[] items = table.getItems();
                if (items == null) {
                    return;
                }
                for (int i = 0; i < items.length; i++) {
                    items[i].setChecked(true);
                }
            }
        });

        Button deselectAllFolders = new Button(composite, SWT.PUSH);
        deselectAllFolders.setText(Messages.getString("FilterStructureDialog.Buttons.DeselectAll"));
        deselectAllFolders.addMouseListener(new MouseAdapter() {

            public void mouseUp(MouseEvent e) {

                Table table = folderTable.getTable();
                TableItem[] items = table.getItems();
                if (items == null) {
                    return;
                }
                for (int i = 0; i < items.length; i++) {
                    items[i].setChecked(false);
                }
            }
        });

        // add filter text
        _patternButton = new Button(composite, SWT.CHECK | SWT.WRAP);
        _patternButton.setLayoutData(t2GridData);
        _patternButton.setText(Messages.getString("FilterStructureDialog.ElementPattern"));

        final Text pattern = new Text(composite, SWT.BORDER);
        _filterText = pattern;
        GridData textData = new GridData(GridData.FILL_HORIZONTAL);
        textData.horizontalSpan = 2;
        pattern.setLayoutData(textData);
        pattern.setEnabled(_patternButton.getSelection());

        // restore values
        if (_nameFilter != null) {
            _patternButton.setSelection(true);
            pattern.setEnabled(true);
            pattern.setText(_nameFilter);
        } else {
            _patternButton.setSelection(false);
        }

        // add filter help text
        final Label filterHelpLabel = new Label(composite, SWT.WRAP);
        GridData helpData = new GridData(GridData.FILL_HORIZONTAL);
        helpData.horizontalSpan = 2;
        filterHelpLabel.setLayoutData(helpData);
        filterHelpLabel.setText(Messages.getString("FilterStructureDialog.ElementPattern.help"));
        filterHelpLabel.setEnabled(_patternButton.getSelection());

        // activate field and help when checkbox is selected
        _patternButton.addSelectionListener(new SelectionAdapter() {

            public void widgetSelected(SelectionEvent e) {

                pattern.setEnabled(((Button) e.widget).getSelection());
                filterHelpLabel.setEnabled(((Button) e.widget).getSelection());
            }

        });

        composite.addListener(SWT.RESIZE, new Listener() {

            public void handleEvent(Event event) {

                composite.layout();
                composite.redraw();
            }

        });

        return composite;

    } catch (Exception e) {
        SQLExplorerPlugin.error("Couldn't create dialog.", e);
    }

    return null;
}

From source file:optm.bettingschedule.view.LevelEditingSupport.java

License:Apache License

/**
 * @param viewer//from w  ww .  ja va2  s.co m
 */
public LevelEditingSupport(final TableViewer viewer) {
    super(viewer);
    this.viewer = viewer;
    this.editor = new TextCellEditor(viewer.getTable());
    this.editor.setValidator(new ICellEditorValidator() {

        @Override
        public String isValid(final Object value) {
            if (value instanceof String) {
                try {
                    Integer valueOf = Integer.valueOf((String) value);
                    if (valueOf.compareTo(Integer.valueOf(0)) <= 0) {
                        return Messages.LevelEditingSupport_0;
                    }
                } catch (NumberFormatException e) {
                    return Messages.LevelEditingSupport_1;
                }
            }
            return null;
        }
    });
    editor.addListener(new ICellEditorListener() {

        @Override
        public void editorValueChanged(final boolean oldValidState, final boolean newValidState) {
        }

        @Override
        public void cancelEditor() {
        }

        @Override
        public void applyEditorValue() {
            if (!editor.isValueValid()) {
                MessageDialog.openError(viewer.getControl().getShell(), "No did not work", //$NON-NLS-1$
                        editor.getErrorMessage());
            }
        }
    });
}

From source file:org.apache.directory.studio.ldapbrowser.ui.editors.searchresult.SearchResultEditorConfiguration.java

License:Apache License

/**
 * Gets the context menu manager./*from   w  w w  . j av a  2s  .  c o  m*/
 * 
 * @param viewer the viewer
 * 
 * @return the context menu manager
 */
public IMenuManager getContextMenuManager(TableViewer viewer) {
    if (contextMenuManager == null) {
        contextMenuManager = new MenuManager();
        Menu menu = contextMenuManager.createContextMenu(viewer.getControl());
        getCursor(viewer).setMenu(menu);
    }
    return contextMenuManager;
}

From source file:org.apache.directory.studio.openldap.config.editor.databases.DatabasesDetailsPage.java

License:Apache License

/**
 * Adds a double-click listener to the given Viewer.
 *
 * @param viewer the Viewer control/*from   w  ww  . ja  v  a  2s.co  m*/
 * @param listener the listener
 */
protected void addDoubleClickListener(TableViewer viewer, IDoubleClickListener listener) {
    if ((viewer != null) && (!viewer.getControl().isDisposed()) && (listener != null)) {
        viewer.addDoubleClickListener(listener);
    }
}

From source file:org.apache.directory.studio.openldap.config.editor.databases.DatabasesDetailsPage.java

License:Apache License

/**
 * Removes a selection changed listener to the given Button.
 *
 * @param viewer the TableViewer/*from w ww. j  a va2 s .c  o  m*/
 * @param listener the listener
 */
protected void removeDoubleClickListener(TableViewer viewer, IDoubleClickListener listener) {
    if ((viewer != null) && (!viewer.getControl().isDisposed()) && (listener != null)) {
        viewer.removeDoubleClickListener(listener);
    }
}

From source file:org.apache.sling.ide.eclipse.ui.views.JcrCellLabelProvider.java

License:Apache License

public JcrCellLabelProvider(TableViewer viewer) {
    this.viewer = viewer;

    Display display = viewer.getControl().getDisplay();

    greyColor = display.getSystemColor(SWT.COLOR_DARK_GRAY);
    normalColor = viewer.getTable().getForeground();
}