Example usage for org.eclipse.jface.viewers IStructuredSelection isEmpty

List of usage examples for org.eclipse.jface.viewers IStructuredSelection isEmpty

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers IStructuredSelection isEmpty.

Prototype

public boolean isEmpty();

Source Link

Document

Returns whether this selection is empty.

Usage

From source file:com.vectrace.MercurialEclipse.history.MercurialHistoryPage.java

License:Open Source License

private void createTableHistory(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    GridLayout layout0 = new GridLayout();
    layout0.marginHeight = 0;//from  ww  w . j a  v a  2 s  . co  m
    layout0.marginWidth = 0;
    composite.setLayout(layout0);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.grabExcessVerticalSpace = true;
    composite.setLayoutData(data);

    viewer = new GraphLogTableViewer(composite,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.VIRTUAL, this);
    Table changeLogTable = viewer.getTable();

    changeLogTable.setLinesVisible(true);
    changeLogTable.setHeaderVisible(true);

    GridData gridData = new GridData(GridData.FILL_BOTH);
    changeLogTable.setLayoutData(gridData);

    IPreferenceStore store = MercurialEclipsePlugin.getDefault().getPreferenceStore();
    if (layout == null) {
        layout = new TableLayout();

        // Get the user-defined column widths from the preferences.
        int[] preferredWidths = getColumnWidthsFromPrefsIfEnabled();

        // We set default widths when there's no widths in the preferences or the user is not
        // interested in having their custom widths saved.
        if (preferredWidths == null) {
            layout.addColumnData(new ColumnWeightData(7, true));
            layout.addColumnData(new ColumnWeightData(15, true));
            layout.addColumnData(new ColumnWeightData(10, true));
            layout.addColumnData(new ColumnWeightData(10, true));
            layout.addColumnData(new ColumnWeightData(12, true));
            layout.addColumnData(new ColumnWeightData(12, true));
            layout.addColumnData(new ColumnWeightData(25, true));
        } else {
            // We found column widths in the preference store. We use them.
            for (int colIdx = 0; colIdx < NUMBER_OF_COLUMNS; colIdx++) {
                layout.addColumnData(new ColumnPixelData(preferredWidths[colIdx], true));
            }
        }
    }

    changeLogTable.setLayout(layout);
    for (int i = 0; i < NUMBER_OF_COLUMNS; i++) {
        TableColumn column = new TableColumn(changeLogTable, i == 0 ? SWT.CENTER : SWT.LEFT);
        switch (i) {
        case 0:
            column.setText(Messages.getString("MercurialHistoryPage.columnHeader.graph")); //$NON-NLS-1$
            break;
        case 1:
            column.setText(Messages.getString("MercurialHistoryPage.columnHeader.changeset")); //$NON-NLS-1$
            break;
        case 2:
            column.setText(Messages.getString("MercurialHistoryPage.columnHeader.tag")); //$NON-NLS-1$
            break;
        case 3:
            column.setText(Messages.getString("MercurialHistoryPage.columnHeader.branch")); //$NON-NLS-1$
            break;
        case 4:
            column.setText(Messages.getString("MercurialHistoryPage.columnHeader.user")); //$NON-NLS-1$
            break;
        case 5:
            column.setText(Messages.getString("MercurialHistoryPage.columnHeader.date")); //$NON-NLS-1$
            break;
        case 6:
            column.setText(Messages.getString("MercurialHistoryPage.columnHeader.summary")); //$NON-NLS-1$
            break;
        default:
            // If this shows up in the view, then there was a programming error: please update
            // the number of columns constant.
            column.setText("ERROR!!!"); //$NON-NLS-1$
            break;
        }
        //
        // Listener to be notified of changes in the column width.
        if (store.getBoolean(PREF_HISTORY_COLUMN_PERSISTENCE)) {
            column.addControlListener(new ControlListener() {

                public void controlResized(ControlEvent e) {
                    persistColumnWidths();
                }

                public void controlMoved(ControlEvent e) {
                    // We have no interest in this: the columns aren't defined as moveable.
                }
            });
        }
    }
    viewer.setLabelProvider(new ChangeSetLabelProvider());
    viewer.setContentProvider(new ChangeLogContentProvider());
    viewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            getCompareWithPreviousAction();
            updateActionEnablement();
            if (compareWithPrevAction.isEnabled()) {
                compareWithPrevAction.run();
            }
        }
    });
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            if (!gotoText.isVisible()) {
                return;
            }
            IStructuredSelection selection = getSelection();
            if (selection.isEmpty()) {
                return;
            }
            gotoText.setText(((MercurialRevision) selection.getFirstElement()).getChangeSet().toString());
            gotoText.selectAll();
        }
    });

    viewer.getControl().addFocusListener(new FocusAdapter() {
        @Override
        public void focusGained(FocusEvent e) {
            setSelectionProvider(viewer);
        }
    });
    contributeActions();
}

From source file:com.vectrace.MercurialEclipse.history.MercurialHistoryPage.java

License:Open Source License

public BaseSelectionListenerAction getRevertAction() {
    if (revertAction == null) {
        final String replaceString = Messages.getString("MercurialHistoryPage.replaceCurrentWithSelected");
        final String restoreString = Messages.getString("MercurialHistoryPage.restoreDeletedFile");
        final String undoMoveString = Messages.getString("MercurialHistoryPage.undoMove");
        revertAction = new BaseSelectionListenerAction(replaceString) {
            @Override//  w w  w  . ja  va 2s.  c  o  m
            public void run() {
                IStructuredSelection selection = getStructuredSelection();
                if (selection.isEmpty()) {
                    return;
                }
                ActionRevert revert = new ActionRevert();
                MercurialRevision revision = (MercurialRevision) selection.getFirstElement();
                IResource selectedElement = revision.getResource();
                MercurialStatusCache cache = MercurialStatusCache.getInstance();
                if (!cache.isUnknown(selectedElement) && !cache.isClean(selectedElement)
                        && !MessageDialog.openQuestion(getControl().getShell(),
                                Messages.getString("MercurialHistoryPage.UncommittedChanges"), //$NON-NLS-1$
                                Messages.getString("MercurialHistoryPage.file") + selectedElement.getName() //$NON-NLS-1$
                                        + Messages.getString("MercurialHistoryPage.hasUncommittedChanges"))) { //$NON-NLS-1$
                    return;
                }
                selection = new StructuredSelection(selectedElement);
                revert.setChangesetToRevert(revision.getChangeSet());
                revert.selectionChanged(this, selection);
                revert.run(this);
            }

            @Override
            protected boolean updateSelection(IStructuredSelection sSelection) {
                if (sSelection.size() != 1) {
                    return false;
                }
                if (sSelection.size() == 1) {
                    Object element = sSelection.getFirstElement();
                    if (element instanceof MercurialRevision) {
                        MercurialRevision rev = (MercurialRevision) element;
                        if (rev.getResource() instanceof IFile) {
                            if (rev.getChangeSet().isRemoved(rev.getResource())) {
                                setText(restoreString);
                            } else if (rev.getChangeSet().isMoved(rev.getResource())) {
                                setText(undoMoveString);
                            } else {
                                setText(replaceString);
                            }
                            return true;
                        }
                    }
                }
                return false;
            }
        };
        revertAction.setImageDescriptor(MercurialEclipsePlugin.getImageDescriptor("actions/revert.gif")); //$NON-NLS-1$
    }
    return revertAction;
}

From source file:com.vectrace.MercurialEclipse.repository.RepositoriesView.java

License:Open Source License

/**
 * Contribute actions to the view// w ww .j  av a 2  s .  c  o m
 */
protected void contributeActions() {

    final Shell shell = getShell();

    // Create actions

    // New Repository (popup)
    newAction = new Action(Messages.getString("RepositoriesView.createRepo"), MercurialEclipsePlugin //$NON-NLS-1$
            .getImageDescriptor("wizards/newlocation_wiz.gif")) { //$NON-NLS-1$
        @Override
        public void run() {
            NewLocationWizard wizard = new NewLocationWizard();
            WizardDialog dialog = new WizardDialog(shell, wizard);
            dialog.open();
        }
    };

    // Clone Repository (popup)
    cloneAction = new Action(Messages.getString("RepositoriesView.cloneRepo"), MercurialEclipsePlugin //$NON-NLS-1$
            .getImageDescriptor("clone_repo.gif")) { //$NON-NLS-1$
        @Override
        public void run() {
            IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            CloneRepoWizard wizard = new CloneRepoWizard();
            wizard.init(PlatformUI.getWorkbench(), selection);
            WizardDialog dialog = new WizardDialog(shell, wizard);
            dialog.open();
        }
    };

    // Init Repository (popup)
    initAction = new InitAction(Messages.getString("RepositoriesView.initRepo"), MercurialEclipsePlugin //$NON-NLS-1$
            .getImageDescriptor("release_rls.gif"), shell);

    // Import project (popup)
    importAction = new Action(Messages.getString("RepositoriesView.importProject"),
            MercurialEclipsePlugin.getImageDescriptor("import_project.gif")) { //$NON-NLS-1$
        @Override
        public void run() {
            IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();

            ImportProjectsFromRepoWizard wizard = new ImportProjectsFromRepoWizard();
            wizard.init(PlatformUI.getWorkbench(), selection);
            WizardDialog dialog = new WizardDialog(shell, wizard);
            dialog.open();
        }
    };

    // Properties
    propertiesAction = new SelectionProviderAction(treeViewer, "Properties") {
        @Override
        public void run() {
            IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            if (selection.isEmpty()) {
                return;
            }
            Object firstElement = selection.getFirstElement();
            PreferenceDialog dialog = createDialog(firstElement);
            if (dialog != null) {
                dialog.open();
            }
            if (!selection.isEmpty()) {
                treeViewer.refresh(firstElement);
            }
        }

        public PreferenceDialog createDialog(Object element) {
            String initialPageId = null;
            if (element instanceof IProject) {
                initialPageId = HgProjectPropertyPage.ID;
            }
            return PropertyDialog.createDialogOn(shell, initialPageId, element);
        }
    };

    IActionBars bars = getViewSite().getActionBars();
    bars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), propertiesAction);
    IStructuredSelection selection = (IStructuredSelection) getViewer().getSelection();
    if (selection.size() == 1) {
        propertiesAction.setEnabled(true);
    } else {
        propertiesAction.setEnabled(false);
    }

    getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection ss = (IStructuredSelection) event.getSelection();
            propertiesAction.setEnabled(ss.size() == 1);
        }
    });

    // Remove Root
    removeRootAction = new RemoveRootAction(treeViewer.getControl().getShell());
    removeRootAction.selectionChanged((IStructuredSelection) null);

    bars.setGlobalActionHandler(ActionFactory.DELETE.getId(), removeRootAction);

    // Refresh action (toolbar)
    refreshAction = new Action(Messages.getString("RepositoriesView.refreshRepos"), //$NON-NLS-1$
            MercurialEclipsePlugin.getImageDescriptor("elcl16/refresh.gif")) { //$NON-NLS-1$
        @Override
        public void run() {
            refreshViewer(null, true);
        }
    };
    refreshAction.setToolTipText(Messages.getString("RepositoriesView.refresh")); //$NON-NLS-1$
    refreshAction.setDisabledImageDescriptor(MercurialEclipsePlugin.getImageDescriptor("dlcl16/refresh.gif")); //$NON-NLS-1$
    refreshAction.setHoverImageDescriptor(MercurialEclipsePlugin.getImageDescriptor("clcl16/refresh.gif")); //$NON-NLS-1$
    getViewSite().getActionBars().setGlobalActionHandler(ActionFactory.REFRESH.getId(), refreshAction);

    refreshPopupAction = new Action(Messages.getString("RepositoriesView.refresh"), MercurialEclipsePlugin //$NON-NLS-1$
            .getImageDescriptor("clcl16/refresh.gif")) { //$NON-NLS-1$
        @Override
        public void run() {
            refreshViewerNode();
        }
    };

    // Collapse action
    collapseAllAction = new Action(Messages.getString("RepositoriesView.collapseAll"), //$NON-NLS-1$
            MercurialEclipsePlugin.getImageDescriptor("elcl16/collapseall.gif")) { //$NON-NLS-1$
        @Override
        public void run() {
            collapseAll();
        }
    };
    collapseAllAction.setToolTipText(Messages.getString("RepositoriesView.collapseAll")); //$NON-NLS-1$
    collapseAllAction
            .setHoverImageDescriptor(MercurialEclipsePlugin.getImageDescriptor("clcl16/collapseall.gif")); //$NON-NLS-1$

    // Create the popup menu
    MenuManager menuMgr = new MenuManager();
    Tree tree = treeViewer.getTree();
    Menu menu = menuMgr.createContextMenu(tree);
    menuMgr.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager manager) {
            addWorkbenchActions(manager);
        }

    });
    menuMgr.setRemoveAllWhenShown(true);
    tree.setMenu(menu);
    getSite().registerContextMenu(menuMgr, treeViewer);

    // Create the local tool bar
    IToolBarManager tbm = bars.getToolBarManager();
    IMenuManager mm = bars.getMenuManager();
    drillPart.addNavigationActions(tbm);
    drillPart.addNavigationActions(mm);
    tbm.add(new Separator());
    mm.add(new Separator());
    tbm.add(newAction);
    mm.add(newAction);
    tbm.add(refreshAction);
    mm.add(refreshAction);
    tbm.add(new Separator());
    mm.add(new Separator());
    tbm.add(collapseAllAction);
    mm.add(collapseAllAction);
    tbm.update(false);
    mm.update(false);

    bars.updateActionBars();
}

From source file:com.vectrace.MercurialEclipse.views.PatchQueueView.java

License:Open Source License

protected void updateEnablement(IStructuredSelection selection) {
    assert hgRoot != null;

    boolean isTopSelected = false;
    boolean selectionHasApplied = false;
    for (Iterator<Patch> i = selection.iterator(); i.hasNext();) {
        Patch p = i.next();//from  w ww  .  j a  v  a 2  s  . c o  m
        if (p.equals(topmostAppliedPatch)) {
            isTopSelected = true;
        }

        selectionHasApplied |= p.isApplied();
    }

    boolean isAllApplied = true;
    boolean isAllUnapplied = true;
    for (Patch patch : (List<Patch>) table.getTableViewer().getInput()) {
        if (patch.isApplied()) {
            isAllUnapplied = false;
        } else {
            isAllApplied = false;
        }
    }

    qNewAction.setEnabled(true);
    qRefreshAction.setEnabled(true);
    qImportAction.setEnabled(true);
    qDeleteAction.setEnabled(true);
    qGotoAction.setEnabled(selection.size() == 1 && !isTopSelected);
    qPushAllAction.setEnabled(!isAllApplied);
    qPopAllAction.setEnabled(!isAllUnapplied);
    qFoldAction.setEnabled(!selectionHasApplied && !selection.isEmpty());
    qFinishAction.setEnabled(selectionHasApplied || selection.isEmpty());
    stripAction.setEnabled(true);
}

From source file:com.vectrace.MercurialEclipse.wizards.CloneRepoWizard.java

License:Open Source License

public void init(IWorkbench workbench, IStructuredSelection selection) {
    setWindowTitle(Messages.getString("CloneRepoWizard.title")); //$NON-NLS-1$

    if (!selection.isEmpty()) {
        Object firstElement = selection.getFirstElement();
        if (firstElement instanceof IHgRepositoryLocation) {
            IHgRepositoryLocation repo = (IHgRepositoryLocation) firstElement;
            setDefaultLocation(repo);/*from   www  .  j ava 2 s.  c  om*/
        }
    }
    if (getDefaultLocation() != null) {
        clonePage.setInitialRepo(getDefaultLocation());
    }
}

From source file:com.vectrace.MercurialEclipse.wizards.ImportProjectsFromRepoWizard.java

License:Open Source License

public void init(IWorkbench workbench, IStructuredSelection selection) {
    setWindowTitle("Import Projects from Mercurial repository");
    setNeedsProgressMonitor(true);/*from  w  w w . jav a2s  . co m*/

    if (!selection.isEmpty()) {
        Object firstElement = selection.getFirstElement();
        HgPath path = MercurialEclipsePlugin.getAdapter(firstElement, HgPath.class);
        if (path != null) {
            setInitialData(path);
        } else {
            IResource resource = MercurialEclipsePlugin.getAdapter(firstElement, IResource.class);
            if (resource != null) {
                IPath iPath = ResourceUtils.getPath(resource);
                if (iPath != null && !iPath.isEmpty()) {
                    try {
                        setInitialData(new HgPath(iPath.toOSString()));
                    } catch (IOException e) {
                        MercurialEclipsePlugin.logError(e);
                    }
                }
            }
        }
    }

    importPage = new ProjectsImportPage("ProjectsImportPage");
    importPage.setDestinationSelectionEnabled(true);
    addPage(importPage);
}

From source file:com.vectrace.MercurialEclipse.wizards.MercurialParticipantSynchronizeWizard.java

License:Open Source License

public void init(IWorkbench workbench, IStructuredSelection selection) {
    if (selection != null && !selection.isEmpty()) {
        Object[] array = selection.toArray();
        Set<IProject> roots = new HashSet<IProject>();
        List<IProject> managed = MercurialTeamProvider.getKnownHgProjects();
        for (Object object : array) {
            IResource iResource = ResourceUtils.getResource(object);
            if (iResource != null) {
                IProject another = iResource.getProject();
                for (IProject project : managed) {
                    if (project.equals(another)) {
                        // add project as a root of resource
                        roots.add(project);
                    }/*from w  w w .  j  a  va  2  s .c  o m*/
                }
                if (roots.isEmpty()) {
                    roots.add((IProject) iResource);
                }
            }
        }
        projects = roots.toArray(new IProject[roots.size()]);
    }
}

From source file:com.xyz.article.wizards.HolidayWizard.java

License:Open Source License

/**
 * @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection)
 *//*from   w ww  .j  av a  2s .  c o m*/
public void init(IWorkbench workbench, IStructuredSelection selection) {
    this.workbench = workbench;
    this.selection = selection;
    if (selection != null && !selection.isEmpty()) {
        Object obj = selection.getFirstElement();
        if (obj instanceof IFolder) {
            IFolder folder = (IFolder) obj;
            if (folder.getName().equals("Discounts"))
                model.discounted = true;
        }
    }
}

From source file:crosswalk.diagram.navigator.CrosswalkNavigatorLinkHelper.java

License:Apache License

/**
 * @generated/*w  w  w.  j  a v  a 2  s .  c om*/
 */
public void activateEditor(IWorkbenchPage aPage, IStructuredSelection aSelection) {
    if (aSelection == null || aSelection.isEmpty()) {
        return;
    }
    if (false == aSelection.getFirstElement() instanceof CrosswalkAbstractNavigatorItem) {
        return;
    }

    CrosswalkAbstractNavigatorItem abstractNavigatorItem = (CrosswalkAbstractNavigatorItem) aSelection
            .getFirstElement();
    View navigatorView = null;
    if (abstractNavigatorItem instanceof CrosswalkNavigatorItem) {
        navigatorView = ((CrosswalkNavigatorItem) abstractNavigatorItem).getView();
    } else if (abstractNavigatorItem instanceof CrosswalkNavigatorGroup) {
        CrosswalkNavigatorGroup navigatorGroup = (CrosswalkNavigatorGroup) abstractNavigatorItem;
        if (navigatorGroup.getParent() instanceof CrosswalkNavigatorItem) {
            navigatorView = ((CrosswalkNavigatorItem) navigatorGroup.getParent()).getView();
        }
    }
    if (navigatorView == null) {
        return;
    }
    IEditorInput editorInput = getEditorInput(navigatorView.getDiagram());
    IEditorPart editor = aPage.findEditor(editorInput);
    if (editor == null) {
        return;
    }
    aPage.bringToTop(editor);
    if (editor instanceof DiagramEditor) {
        DiagramEditor diagramEditor = (DiagramEditor) editor;
        ResourceSet diagramEditorResourceSet = diagramEditor.getEditingDomain().getResourceSet();
        EObject selectedView = diagramEditorResourceSet.getEObject(EcoreUtil.getURI(navigatorView), true);
        if (selectedView == null) {
            return;
        }
        GraphicalViewer graphicalViewer = (GraphicalViewer) diagramEditor.getAdapter(GraphicalViewer.class);
        EditPart selectedEditPart = (EditPart) graphicalViewer.getEditPartRegistry().get(selectedView);
        if (selectedEditPart != null) {
            graphicalViewer.select(selectedEditPart);
        }
    }
}

From source file:de.anbos.eclipse.logviewer.plugin.preferences.rule.RulePreferencePage.java

License:Apache License

protected Control createContents(Composite parent) {
    Font font = parent.getFont();
    // define default grid
    Composite pageComponent = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.numColumns = 2;//from   ww  w  . j ava 2  s.com
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    pageComponent.setLayout(layout);

    // list
    GridData data = new GridData(GridData.FILL_BOTH);
    // create table
    table = new Table(pageComponent, SWT.MULTI | SWT.CHECK | SWT.FULL_SELECTION);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    table.setFont(parent.getFont());

    TableColumn column1 = new TableColumn(table, SWT.LEFT);
    column1.setText(LogViewerPlugin.getResourceString("preferences.ruleseditor.table.header.column0.title")); //$NON-NLS-1$
    column1.setResizable(false);

    TableColumn column2 = new TableColumn(table, SWT.LEFT);
    column2.setText(LogViewerPlugin.getResourceString("preferences.ruleseditor.table.header.column1.title")); //$NON-NLS-1$
    column2.setResizable(false);

    int availableRows = availableRows(pageComponent);
    data.heightHint = table.getItemHeight() * (availableRows / 8);
    data.widthHint = TABLE_WIDTH;
    table.setLayoutData(data);

    @SuppressWarnings("unused")
    TableItemColorController tableItemColorController = new TableItemColorController(table);
    //tableItemColorController.notifyAll();

    tableViewer = new CheckboxTableViewer(table);
    tableViewer.setLabelProvider(new RuleLabelProvider());
    tableViewer.setContentProvider(new RuleContentProvider());
    store = new RuleStore(LogViewerPlugin.getDefault().getPreferenceStore());
    store.load();
    tableViewer.setInput(store);
    tableViewer.setAllChecked(false);
    tableViewer.setCheckedElements(store.getAllCheckedRuleDetails());

    tableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent e) {
            edit();
        }
    });

    tableViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            RulePreferenceData data = (RulePreferenceData) event.getElement();
            data.setEnabled(event.getChecked());
        }
    });

    tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection();
            boolean selected = !selection.isEmpty();
            editButton.setEnabled(selected);
            removeButton.setEnabled(selected);
            upButton.setEnabled(selected);
            downButton.setEnabled(selected);
            exportSelectedButton.setEnabled(selected);
        }
    });

    tableViewer.setSorter(new ViewerSorter() {
        public int compare(Viewer viewer, Object object1, Object object2) {
            if (!(object1 instanceof RulePreferenceData) || !(object2 instanceof RulePreferenceData)) {
                return super.compare(viewer, object1, object2);
            }
            RulePreferenceData data1 = (RulePreferenceData) object1;
            RulePreferenceData data2 = (RulePreferenceData) object2;
            if (data1.getPosition() > data2.getPosition()) {
                return 1;
            }
            if (data1.getPosition() < data2.getPosition()) {
                return -1;
            }
            if (data1.getPosition() == data2.getPosition()) {
                return 0;
            }
            return super.compare(viewer, object1, object2);
        }

        public boolean isSorterProperty(Object element, String property) {
            return true;
        }
    });

    itemMover = new ItemMover(table, store);

    // button pageComponent
    Composite groupComponent = new Composite(pageComponent, SWT.NULL);
    GridLayout groupLayout = new GridLayout();
    groupLayout.marginWidth = 0;
    groupLayout.marginHeight = 0;
    groupComponent.setLayout(groupLayout);
    data = new GridData();
    data.verticalAlignment = GridData.FILL;
    data.horizontalAlignment = GridData.FILL;
    groupComponent.setLayoutData(data);
    groupComponent.setFont(font);

    // buttons
    addButton = new Button(groupComponent, SWT.PUSH);
    addButton.setText(LogViewerPlugin.getResourceString("preferences.ruleseditor.button.add")); //$NON-NLS-1$
    addButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            add();
        }
    });
    addButton.setLayoutData(data);
    addButton.setFont(font);
    setButtonLayoutData(addButton);

    editButton = new Button(groupComponent, SWT.PUSH);
    editButton.setText(LogViewerPlugin.getResourceString("preferences.ruleseditor.button.edit")); //$NON-NLS-1$
    editButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            edit();
        }
    });
    editButton.setLayoutData(data);
    editButton.setFont(font);
    setButtonLayoutData(editButton);

    removeButton = new Button(groupComponent, SWT.PUSH);
    removeButton.setText(LogViewerPlugin.getResourceString("preferences.ruleseditor.button.remove")); //$NON-NLS-1$
    removeButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            remove();
        }
    });
    removeButton.setFont(font);
    setButtonLayoutData(removeButton);

    upButton = new Button(groupComponent, SWT.PUSH);
    upButton.setText(LogViewerPlugin.getResourceString("preferences.ruleseditor.button.up")); //$NON-NLS-1$
    upButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            up();
        }
    });
    upButton.setFont(font);
    setButtonLayoutData(upButton);

    downButton = new Button(groupComponent, SWT.PUSH);
    downButton.setText(LogViewerPlugin.getResourceString("preferences.ruleseditor.button.down")); //$NON-NLS-1$
    downButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            down();
        }
    });
    downButton.setFont(font);
    setButtonLayoutData(downButton);

    exportSelectedButton = new Button(groupComponent, SWT.PUSH);
    exportSelectedButton
            .setText(LogViewerPlugin.getResourceString("preferences.ruleseditor.button.export.selected")); //$NON-NLS-1$
    exportSelectedButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            exportSelected();
        }
    });
    exportSelectedButton.setFont(font);
    setButtonLayoutData(exportSelectedButton);

    exportAllButton = new Button(groupComponent, SWT.PUSH);
    exportAllButton.setText(LogViewerPlugin.getResourceString("preferences.ruleseditor.button.export.all")); //$NON-NLS-1$
    exportAllButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            exportAll();
        }
    });
    exportAllButton.setFont(font);
    setButtonLayoutData(exportAllButton);

    importButton = new Button(groupComponent, SWT.PUSH);
    importButton.setText(LogViewerPlugin.getResourceString("preferences.ruleseditor.button.import")); //$NON-NLS-1$
    importButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent event) {
            inport();
        }
    });
    importButton.setFont(font);
    setButtonLayoutData(importButton);

    configureTableResizing(table);

    Dialog.applyDialogFont(pageComponent);
    // trigger the resize
    table.getHorizontalBar().setVisible(true);

    // send event to refresh tableViewer
    Event event = new Event();
    event.item = null;
    tableViewer.getTable().notifyListeners(SWT.Selection, event);
    //tableViewer.getControl().setEnabled(true);

    return pageComponent;
}