Example usage for org.eclipse.jface.action IToolBarManager markDirty

List of usage examples for org.eclipse.jface.action IToolBarManager markDirty

Introduction

In this page you can find the example usage for org.eclipse.jface.action IToolBarManager markDirty.

Prototype

void markDirty();

Source Link

Document

Marks this contribution manager as dirty.

Usage

From source file:com.safi.workshop.sqlexplorer.plugin.views.SQLHistoryView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {

    if (SQLExplorerPlugin.getDefault() == null)
        return;//from  w ww  .j a  v  a2 s. c  o  m
    SQLHistory history = SQLExplorerPlugin.getDefault().getSQLHistory();
    // if (history == null){
    // try {
    // SQLExplorerPlugin.getDefault().initResources(new NullProgressMonitor());
    // history = SQLExplorerPlugin.getDefault().getSQLHistory();
    // } catch (Exception e1) {
    // e1.printStackTrace();
    // }
    //      
    // }
    if (history == null) {
        SQLExplorerPlugin.getDefault().initHistory();
        history = SQLExplorerPlugin.getDefault().getSQLHistory();
    }
    history.sort(1, SWT.DOWN);
    PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, SQLExplorerPlugin.PLUGIN_ID + ".SQLHistoryView");

    history.addListener(this);

    Composite composite = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 1;
    layout.marginLeft = 0;
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 2;
    layout.marginWidth = 0;
    layout.marginHeight = 0;

    composite.setLayout(layout);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    // add search box
    _searchBox = new Text(composite, SWT.BORDER);
    _searchBox.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
    _searchBox.setText(Messages.getString("SQLHistoryView.SearchText"));
    _searchBox.selectAll();

    SQLHistorySearchListener searchListener = new SQLHistorySearchListener(history);
    _searchBox.addModifyListener(searchListener);
    _searchBox.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDown(MouseEvent e) {

            Text searchbox = (Text) e.widget;
            if (searchbox.getText() != null
                    && searchbox.getText().equals(Messages.getString("SQLHistoryView.SearchText"))) {
                searchbox.setText("");
            }
        }

    });

    _tableViewer = new TableViewer(composite,
            SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI | SWT.VIRTUAL);
    getSite().setSelectionProvider(_tableViewer);

    _table = _tableViewer.getTable();
    _table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    _table.setHeaderVisible(true);
    _table.setLinesVisible(true);
    _table.setItemCount(history.getEntryCount());

    _tableViewer.setLabelProvider(new SQLHistoryLabelProvider());
    _tableViewer.setContentProvider(new IStructuredContentProvider() {

        public void dispose() {

        }

        public Object[] getElements(Object inputElement) {

            return SQLExplorerPlugin.getDefault().getSQLHistory().toArray();
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

        }
    });

    _tableViewer.setInput(history);

    final SQLHistory fhistory = history;
    // 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;
            }

            sortColumn = _table.getSortColumn();
            TableColumn[] cols = _table.getColumns();
            for (int i = 0; i < cols.length; i++) {
                if (cols[i] == sortColumn) {
                    fhistory.sort(i, dir);
                    break;
                }
            }

            // update data displayed in table
            _table.setSortDirection(dir);
            _tableViewer.refresh();
        }
    };

    String[] columnLabels = new String[] { Messages.getString("SQLHistoryView.Column.SQL"),
            Messages.getString("SQLHistoryView.Column.Time"),
            Messages.getString("SQLHistoryView.Column.Connection"),
            Messages.getString("SQLHistoryView.Column.Executions") };

    _tableViewer.setColumnProperties(columnLabels);

    // add all column headers to our table
    for (String columnLabel : columnLabels) {

        // add column header
        TableColumn column = new TableColumn(_table, SWT.LEFT);
        column.setText(columnLabel);
        column.setMoveable(false);
        column.setResizable(true);
        column.addListener(SWT.Selection, sortListener);
    }

    _tableViewer.refresh();

    // add sizing weights to the different columns
    TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(7, 150));
    tableLayout.addColumnData(new ColumnWeightData(2, 120));
    tableLayout.addColumnData(new ColumnWeightData(1, 50));
    tableLayout.addColumnData(new ColumnWeightData(1, 50));

    _table.setLayout(tableLayout);
    _table.layout();

    // redraw table if view is resized
    parent.addControlListener(new ControlAdapter() {

        @Override
        public void controlResized(ControlEvent e) {

            super.controlResized(e);

            // reset weights in case of view resizing
            TableLayout tableLayout = new TableLayout();
            tableLayout.addColumnData(new ColumnWeightData(7, 150));
            tableLayout.addColumnData(new ColumnWeightData(2, 120));
            tableLayout.addColumnData(new ColumnWeightData(1, 50));
            tableLayout.addColumnData(new ColumnWeightData(1, 50));

            _table.setLayout(tableLayout);
        }

    });

    // create action bar
    final IToolBarManager toolBarMgr = getViewSite().getActionBars().getToolBarManager();

    final SQLHistoryActionGroup actionGroup = new SQLHistoryActionGroup(this, history, _tableViewer,
            toolBarMgr);

    _tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {

            actionGroup.refresh();
            toolBarMgr.update(true);
        }
    });

    // add context menus
    final MenuManager menuMgr = new MenuManager("#HistoryPopupMenu");
    menuMgr.setRemoveAllWhenShown(true);

    Menu historyContextMenu = menuMgr.createContextMenu(_table);
    _table.setMenu(historyContextMenu);

    menuMgr.addMenuListener(new IMenuListener() {

        public void menuAboutToShow(IMenuManager manager) {

            toolBarMgr.markDirty();
            actionGroup.fillContextMenu(manager);
        }
    });

    // also add action as default when an entry is doubleclicked.
    // final OpenInEditorAction openInEditorAction = new OpenInEditorAction();
    // openInEditorAction.setTableViewer(_tableViewer);
    // openInEditorAction.setView(this);
    //        
    // _tableViewer.addDoubleClickListener(new IDoubleClickListener() {
    //
    // public void doubleClick(DoubleClickEvent event) {
    //
    // openInEditorAction.run();
    // }
    // });

    final AddDBQueryAction addQueryAction = new AddDBQueryAction();
    addQueryAction.setTableViewer(_tableViewer);
    addQueryAction.setView(this);

    _tableViewer.addDoubleClickListener(new IDoubleClickListener() {

        public void doubleClick(DoubleClickEvent event) {

            addQueryAction.run();
        }
    });

    // add remove action on delete key
    final RemoveFromHistoryAction removeFromHistoryAction = new RemoveFromHistoryAction();
    removeFromHistoryAction.setTableViewer(_tableViewer);
    _table.addKeyListener(new KeyAdapter() {

        @Override
        public void keyReleased(KeyEvent e) {

            // delete entry
            if (e.keyCode == SWT.DEL) {
                removeFromHistoryAction.run();
            }
        }

    });

    // Set multi-line tooltip
    final Display display = parent.getDisplay();
    _tipShell = new Shell(parent.getShell(), SWT.ON_TOP);
    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 2;
    gridLayout.marginWidth = 2;
    gridLayout.marginHeight = 2;

    _tipShell.setLayout(gridLayout);
    _tipShell.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));

    _tipLabelText = new Label(_tipShell, SWT.WRAP | SWT.LEFT);
    _tipLabelText.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
    _tipLabelText.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));

    GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
    _tipLabelText.setLayoutData(gridData);

    _table.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDown(MouseEvent e) {

            if (_tipShell.isVisible()) {
                _tipShell.setVisible(false);
                _tipWidget = null;
            }
        }
    });

    _table.addMouseTrackListener(new MouseTrackAdapter() {

        @Override
        public void mouseExit(MouseEvent e) {

            if (_tipShell.isVisible())
                _tipShell.setVisible(false);
            _tipWidget = null;
        }

        /*
         * (non-Javadoc)
         * 
         * @seeorg.eclipse.swt.events.MouseTrackListener#mouseHover(org.eclipse.swt.events.
         * MouseEvent)
         */
        @Override
        public void mouseHover(MouseEvent event) {

            Point pt = new Point(event.x, event.y);
            Widget widget = event.widget;
            TableItem tableItem = null;

            if (widget instanceof Table) {
                Table table = (Table) widget;
                widget = table.getItem(pt);
            }
            if (widget instanceof TableItem) {
                tableItem = (TableItem) widget;
            }
            if (widget == null) {
                _tipShell.setVisible(false);
                _tipWidget = null;
                return;
            }
            if (widget == _tipWidget)
                return;
            _tipWidget = widget;
            _tipPosition = _table.toDisplay(pt);

            SQLHistoryElement sqlString = (SQLHistoryElement) tableItem.getData();
            String text = TextUtil.getWrappedText(sqlString.getRawSQLString());

            if (text == null || text.equals("")) {
                _tipWidget = null;
                return;
            }
            // Set off the table tooltip as we provide our own
            _table.setToolTipText("");
            _tipLabelText.setText(text);
            _tipShell.pack();
            setHoverLocation(_tipShell, _tipPosition, _tipLabelText.getBounds().height);
            _tipShell.setVisible(true);

        }
    });

    _tableViewer.setSelection(null);

    composite.layout();
    parent.layout();

}

From source file:net.sourceforge.sqlexplorer.plugin.views.SQLHistoryView.java

License:Open Source License

public void createPartControl(final Composite parent) {

    // MOD gdbu 2011-4-29 bug : 20960
    SQLHistory tem_history = SQLExplorerPlugin.getDefault().getSQLHistory();
    final SQLHistory history = tem_history == null ? new SQLHistory() : tem_history;
    // ~20960//from w  w w . ja va2s.  c o  m

    history.sort(1, SWT.DOWN);
    PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, SQLExplorerPlugin.PLUGIN_ID + ".SQLHistoryView");//$NON-NLS-1$

    history.addListener(this);

    Composite composite = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    layout.numColumns = 1;
    layout.marginLeft = 0;
    layout.horizontalSpacing = 0;
    layout.verticalSpacing = 2;
    layout.marginWidth = 0;
    layout.marginHeight = 0;

    composite.setLayout(layout);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    // add search box
    _searchBox = new Text(composite, SWT.BORDER);
    _searchBox.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
    _searchBox.setText(Messages.getString("SQLHistoryView.SearchText"));//$NON-NLS-1$
    _searchBox.selectAll();

    SQLHistorySearchListener searchListener = new SQLHistorySearchListener(history);
    _searchBox.addModifyListener(searchListener);
    _searchBox.addMouseListener(new MouseAdapter() {

        public void mouseDown(MouseEvent e) {

            Text searchbox = (Text) e.widget;
            if (searchbox.getText() != null
                    && searchbox.getText().equals(Messages.getString("SQLHistoryView.SearchText"))) {
                searchbox.setText("");
            }
        }

    });

    _tableViewer = new TableViewer(composite,
            SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.MULTI | SWT.VIRTUAL);
    getSite().setSelectionProvider(_tableViewer);

    _table = _tableViewer.getTable();
    _table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    _table.setHeaderVisible(true);
    _table.setLinesVisible(true);
    _table.setItemCount(history.getEntryCount());

    _tableViewer.setLabelProvider(new SQLHistoryLabelProvider());
    _tableViewer.setContentProvider(new IStructuredContentProvider() {

        public void dispose() {

        }

        public Object[] getElements(Object inputElement) {

            return SQLExplorerPlugin.getDefault().getSQLHistory().toArray();
        }

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

        }
    });

    _tableViewer.setInput(history);

    // 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;
            }

            sortColumn = _table.getSortColumn();
            TableColumn[] cols = _table.getColumns();
            for (int i = 0; i < cols.length; i++) {
                if (cols[i] == sortColumn) {
                    history.sort(i, dir);
                    break;
                }
            }

            // update data displayed in table
            _table.setSortDirection(dir);
            _tableViewer.refresh();
        }
    };

    String[] columnLabels = new String[] { Messages.getString("SQLHistoryView.Column.SQL"),
            Messages.getString("SQLHistoryView.Column.Time"),
            Messages.getString("SQLHistoryView.Column.Connection"),
            Messages.getString("SQLHistoryView.Column.Executions") };

    _tableViewer.setColumnProperties(columnLabels);

    // add all column headers to our table
    for (int i = 0; i < columnLabels.length; i++) {

        // add column header
        TableColumn column = new TableColumn(_table, SWT.LEFT);
        column.setText(columnLabels[i]);
        column.setMoveable(false);
        column.setResizable(true);
        column.addListener(SWT.Selection, sortListener);
    }

    _tableViewer.refresh();

    // add sizing weights to the different columns
    TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(7, 150));
    tableLayout.addColumnData(new ColumnWeightData(2, 120));
    tableLayout.addColumnData(new ColumnWeightData(1, 50));
    tableLayout.addColumnData(new ColumnWeightData(1, 50));

    _table.setLayout(tableLayout);
    _table.layout();

    // redraw table if view is resized
    parent.addControlListener(new ControlAdapter() {

        public void controlResized(ControlEvent e) {

            super.controlResized(e);

            // reset weights in case of view resizing
            TableLayout tableLayout = new TableLayout();
            tableLayout.addColumnData(new ColumnWeightData(7, 150));
            tableLayout.addColumnData(new ColumnWeightData(2, 120));
            tableLayout.addColumnData(new ColumnWeightData(1, 50));
            tableLayout.addColumnData(new ColumnWeightData(1, 50));

            _table.setLayout(tableLayout);
        }

    });

    // create action bar
    final IToolBarManager toolBarMgr = getViewSite().getActionBars().getToolBarManager();

    final SQLHistoryActionGroup actionGroup = new SQLHistoryActionGroup(this, history, _tableViewer,
            toolBarMgr);

    _tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {

            actionGroup.refresh();
            toolBarMgr.update(true);
        }
    });

    // add context menus
    final MenuManager menuMgr = new MenuManager("#HistoryPopupMenu");
    menuMgr.setRemoveAllWhenShown(true);

    Menu historyContextMenu = menuMgr.createContextMenu(_table);
    _table.setMenu(historyContextMenu);

    menuMgr.addMenuListener(new IMenuListener() {

        public void menuAboutToShow(IMenuManager manager) {

            toolBarMgr.markDirty();
            actionGroup.fillContextMenu(manager);
        }
    });

    // also add action as default when an entry is doubleclicked.
    final OpenInEditorAction openInEditorAction = new OpenInEditorAction();
    openInEditorAction.setTableViewer(_tableViewer);
    openInEditorAction.setView(this);

    _tableViewer.addDoubleClickListener(new IDoubleClickListener() {

        public void doubleClick(DoubleClickEvent event) {

            openInEditorAction.run();
        }
    });

    // add remove action on delete key
    final RemoveFromHistoryAction removeFromHistoryAction = new RemoveFromHistoryAction();
    removeFromHistoryAction.setTableViewer(_tableViewer);
    _table.addKeyListener(new KeyAdapter() {

        public void keyReleased(KeyEvent e) {

            // delete entry
            if (e.keyCode == SWT.DEL) {
                removeFromHistoryAction.run();
            }
        }

    });

    // Set multi-line tooltip
    final Display display = parent.getDisplay();
    _tipShell = new Shell(parent.getShell(), SWT.ON_TOP);
    GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 2;
    gridLayout.marginWidth = 2;
    gridLayout.marginHeight = 2;

    _tipShell.setLayout(gridLayout);
    _tipShell.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));

    _tipLabelText = new Label(_tipShell, SWT.WRAP | SWT.LEFT);
    _tipLabelText.setForeground(display.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
    _tipLabelText.setBackground(display.getSystemColor(SWT.COLOR_INFO_BACKGROUND));

    GridData gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
    _tipLabelText.setLayoutData(gridData);

    _table.addMouseListener(new MouseAdapter() {

        public void mouseDown(MouseEvent e) {

            if (_tipShell.isVisible()) {
                _tipShell.setVisible(false);
                _tipWidget = null;
            }
        }
    });

    _table.addMouseTrackListener(new MouseTrackAdapter() {

        public void mouseExit(MouseEvent e) {

            if (_tipShell.isVisible())
                _tipShell.setVisible(false);
            _tipWidget = null;
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.swt.events.MouseTrackListener#mouseHover(org.eclipse.swt.events.MouseEvent)
         */
        public void mouseHover(MouseEvent event) {

            Point pt = new Point(event.x, event.y);
            Widget widget = event.widget;
            TableItem tableItem = null;

            if (widget instanceof Table) {
                Table table = (Table) widget;
                widget = table.getItem(pt);
            }
            if (widget instanceof TableItem) {
                tableItem = (TableItem) widget;
            }
            if (widget == null) {
                _tipShell.setVisible(false);
                _tipWidget = null;
                return;
            }
            if (widget == _tipWidget)
                return;
            _tipWidget = widget;
            _tipPosition = _table.toDisplay(pt);

            SQLHistoryElement sqlString = (SQLHistoryElement) tableItem.getData();
            String text = TextUtil.getWrappedText(sqlString.getRawSQLString());

            if (text == null || text.equals("")) {
                _tipWidget = null;
                return;
            }
            // Set off the table tooltip as we provide our own
            _table.setToolTipText("");
            _tipLabelText.setText(text);
            _tipShell.pack();
            setHoverLocation(_tipShell, _tipPosition, _tipLabelText.getBounds().height);
            _tipShell.setVisible(true);

        }
    });

    _tableViewer.setSelection(null);

    composite.layout();
    parent.layout();

}

From source file:org.locationtech.udig.style.sld.SLDConfigurator.java

License:Open Source License

protected void refresh() {
    Layer layer = getLayer();/*from w ww .  j  a v a2  s.  c o m*/
    if (!canStyle(layer)) {
        throw new IllegalStateException("Hey I can't style " + layer); //$NON-NLS-1$
    }
    // pull the sld style off the blackboard, and initialize the cm
    Style style = (Style) getStyleBlackboard().get(SLDContent.ID);

    // if no style information, create default
    if (style == null) {
        style = SLDContent.createDefaultStyle();
        getStyleBlackboard().put(SLDContent.ID, style);
    }
    sldContentManager.init(SLDContent.getStyleBuilder(), style);

    // pull the feature type name out of the layer
    if (layer.getSchema() != null) {
        SimpleFeatureType featureType = layer.getSchema();

        //set the name of the feature type style for the feature renderer
        String name = featureType.getName().getLocalPart();
        sldContentManager.getDefaultFeatureTypeStyle().setFeatureTypeName(SLDs.GENERIC_FEATURE_TYPENAME);
    }

    // force the toolbar to refresh
    //
    IToolBarManager tbm = getViewSite().getActionBars().getToolBarManager();
    tbm.markDirty();
    tbm.update(true);
    getViewSite().getActionBars().updateActionBars();

    for (IContributionItem item : tbm.getItems()) {
        ActionContributionItem action = (ActionContributionItem) item;
        action.getAction().setEnabled(action.getAction().isEnabled());
    }

    // focus the active editor if any exisits
    SLDEditorPart editor = (SLDEditorPart) editorBook.getData();
    List<Class> supported = SLD.getSupportedTypes(layer);
    if (editor != null) {
        if (supported.contains(editor.getContentType())) {
            initEditor(editor);
            editor.reset();
            return; // current editor is still okay
        }
    }
    // if we get here the current editor wasn't applicable, show first that works
    for (Class type : classToEditors.keySet()) {
        if (!supported.contains(type))
            continue;

        for (SLDEditorPart part : classToEditors.get(type)) {
            initEditor(part); // FIXME: we don't want the editor to have content it should not
            part.reset();
            editorBook.setData(part);
            editorBook.showPage(part.getPage());
            part.getPage().setVisible(true);
            return;
        }
    }
    editorBook.showPage(blank);

}