Example usage for org.eclipse.jface.resource JFaceResources getBannerFont

List of usage examples for org.eclipse.jface.resource JFaceResources getBannerFont

Introduction

In this page you can find the example usage for org.eclipse.jface.resource JFaceResources getBannerFont.

Prototype

public static Font getBannerFont() 

Source Link

Document

Returns the JFace's banner font.

Usage

From source file:org.netxms.ui.eclipse.agentmanager.views.ScreenshotView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    parent.setLayout(new FillLayout());

    scroller = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);

    canvas = new Canvas(scroller, SWT.NONE);
    canvas.addPaintListener(new PaintListener() {
        public void paintControl(PaintEvent e) {
            GC gc = e.gc;/*  w  w  w.  j  a  v  a 2  s.c o m*/
            if (image != null) {
                gc.drawImage(image, 0, 0);
                gc.drawText(imageInfo, 10, image.getImageData().height + 10);
            } else if (errorMessage != null) {
                gc.setForeground(canvas.getDisplay().getSystemColor(SWT.COLOR_DARK_RED));
                gc.setFont(JFaceResources.getBannerFont());
                gc.drawText(errorMessage, 10, 10, true);
            }
        }
    });

    scroller.setContent(canvas);
    scroller.setExpandVertical(true);
    scroller.setExpandHorizontal(true);
    scroller.addControlListener(new ControlAdapter() {
        public void controlResized(ControlEvent e) {
            updateScrollerSize();
        }
    });

    activateContext();
    createActions();
    contributeToActionBars();
    refresh();
}

From source file:org.netxms.ui.eclipse.dashboard.widgets.StatusMapElement.java

License:Open Source License

/**
 * @param parent//from  ww w. j  a  va  2s .c om
 * @param data
 */
public StatusMapElement(DashboardControl parent, DashboardElement element, IViewPart viewPart) {
    super(parent, element, viewPart);

    try {
        config = StatusMapConfig.createFromXml(element.getData());
    } catch (Exception e) {
        e.printStackTrace();
        config = new StatusMapConfig();
    }

    if (config.getTitle().trim().isEmpty()) {
        setLayout(new FillLayout());
        map = new ObjectStatusMap(viewPart, this, SWT.NONE);
    } else {
        GridLayout layout = new GridLayout();
        layout.marginWidth = 0;
        layout.marginHeight = 0;
        setLayout(layout);

        Label title = new Label(this, SWT.CENTER);
        title.setText(config.getTitle().trim());
        title.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
        title.setFont(JFaceResources.getBannerFont());
        title.setBackground(getBackground());

        map = new ObjectStatusMap(viewPart, this, SWT.NONE);
        map.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    }
    map.setGroupObjects(config.isGroupObjects());
    map.setSeverityFilter(config.getSeverityFilter());
    map.setRootObject(config.getObjectId());

    map.addRefreshListener(new Runnable() {
        @Override
        public void run() {
            requestDashboardLayout();
        }
    });
}

From source file:org.netxms.ui.eclipse.dashboard.widgets.TableValueElement.java

License:Open Source License

/**
 * @param parent//from   w  w w.  j  a  v  a2s  .c  om
 * @param element
 * @param viewPart
 */
public TableValueElement(DashboardControl parent, DashboardElement element, IViewPart viewPart) {
    super(parent, element, viewPart);

    try {
        config = TableValueConfig.createFromXml(element.getData());
    } catch (Exception e) {
        e.printStackTrace();
        config = new TableValueConfig();
    }

    if (config.getTitle().trim().isEmpty()) {
        setLayout(new FillLayout());
        viewer = new TableValue(this, SWT.NONE, viewPart, parent.getDashboardObject().getGuid().toString());
    } else {
        GridLayout layout = new GridLayout();
        layout.marginWidth = 0;
        layout.marginHeight = 0;
        setLayout(layout);

        Label title = new Label(this, SWT.CENTER);
        title.setText(config.getTitle().trim());
        title.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
        title.setFont(JFaceResources.getBannerFont());

        viewer = new TableValue(this, SWT.NONE, viewPart, parent.getDashboardObject().getGuid().toString());
        viewer.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    }

    viewer.setObject(config.getObjectId(), config.getDciId());
    viewer.refresh(null);

    final ViewRefreshController refreshController = new ViewRefreshController(viewPart, config.getRefreshRate(),
            new Runnable() {
                @Override
                public void run() {
                    if (TableValueElement.this.isDisposed())
                        return;

                    viewer.refresh(null);
                }
            });

    addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(DisposeEvent e) {
            refreshController.dispose();
        }
    });
}

From source file:org.netxms.ui.eclipse.networkmaps.views.helpers.ObjectTooltip.java

License:Open Source License

/**
 * @param object// ww  w  .  j a v a 2 s . c o m
 */
public ObjectTooltip(AbstractObject object, MapLabelProvider labelProvider) {
    setBorder(new MarginBorder(3));
    GridLayout layout = new GridLayout(2, false);
    layout.horizontalSpacing = 10;
    setLayoutManager(layout);

    Label title = new Label();
    title.setIcon(labelProvider.getWorkbenchIcon(object));
    title.setText(object.getObjectName());
    title.setFont(JFaceResources.getBannerFont());
    add(title);

    Label status = new Label();
    status.setIcon(StatusDisplayInfo.getStatusImage(object.getStatus()));
    status.setText(StatusDisplayInfo.getStatusText(object.getStatus()));
    add(status);
    GridData gd = new GridData();
    gd.horizontalAlignment = SWT.RIGHT;
    setConstraint(status, gd);

    if ((object instanceof Node) && ((Node) object).getPrimaryIP().isValidAddress()
            && !((Node) object).getPrimaryIP().getAddress().isAnyLocalAddress()) {
        StringBuilder sb = new StringBuilder(((Node) object).getPrimaryIP().getHostAddress());
        MacAddress mac = ((Node) object).getPrimaryMAC();
        if (mac != null) {
            sb.append(" ("); //$NON-NLS-1$
            sb.append(mac.toString());
            sb.append(')');
        }

        Label iface = new Label();
        iface.setIcon(SharedIcons.IMG_IP_ADDRESS);
        iface.setText(sb.toString());
        add(iface);

        gd = new GridData();
        gd.horizontalSpan = 2;
        setConstraint(iface, gd);
    }

    if (object instanceof Node) {
        DciValue[] values = labelProvider.getNodeLastValues(object.getObjectId());
        if ((values != null) && (values.length > 0)) {
            lastValuesFigure = new NodeLastValuesFigure(values);
            add(lastValuesFigure);

            gd = new GridData();
            gd.horizontalSpan = 2;
            setConstraint(lastValuesFigure, gd);
        }
    }

    if (object instanceof Container)
        addStatusChart(object, labelProvider);

    if (object instanceof AccessPoint) {
        StringBuilder sb = new StringBuilder(((AccessPoint) object).getModel());
        MacAddress mac = ((AccessPoint) object).getMacAddress();
        if (mac != null) {
            sb.append('\n');
            sb.append(mac.toString());
        }

        for (RadioInterface rif : ((AccessPoint) object).getRadios()) {
            sb.append(Messages.get().ObjectTooltip_Radio);
            sb.append(rif.getIndex());
            sb.append(" ("); //$NON-NLS-1$
            sb.append(rif.getMacAddress().toString());
            sb.append(Messages.get().ObjectTooltip_Channel);
            sb.append(rif.getChannel());
            sb.append(Messages.get().ObjectTooltip_TXPower);
            sb.append(rif.getPowerMW());
            sb.append(Messages.get().ObjectTooltip_mW);
        }

        Label info = new Label();
        info.setText(sb.toString());
        add(info);

        gd = new GridData();
        gd.horizontalSpan = 2;
        setConstraint(info, gd);
    }

    if (!object.getComments().isEmpty()) {
        FlowPage page = new FlowPage();
        add(page);
        gd = new GridData();
        gd.horizontalSpan = 2;
        setConstraint(page, gd);

        TextFlow text = new TextFlow();
        text.setText("\n" + object.getComments()); //$NON-NLS-1$
        page.add(text);
    }
}

From source file:org.netxms.ui.eclipse.perfview.widgets.TableValue.java

License:Open Source License

/**
 * Refresh table/*from w w  w  .j a v a2  s .  com*/
 */
public void refresh(final Runnable postRefreshHook) {
    viewer.setInput(null);
    ConsoleJob job = new ConsoleJob(String.format(Messages.get().TableValue_JobName, dciId), viewPart,
            Activator.PLUGIN_ID, null) {
        @Override
        protected void runInternal(IProgressMonitor monitor) throws Exception {
            final Table table = session.getTableLastValues(objectId, dciId);
            runInUIThread(new Runnable() {
                @Override
                public void run() {
                    if (viewer.getControl().isDisposed())
                        return;

                    if (errorLabel != null) {
                        errorLabel.dispose();
                        errorLabel = null;
                        viewer.getControl().setVisible(true);
                        viewer.getControl().getParent().layout(true, true);
                    }
                    updateViewer(table);
                    if (postRefreshHook != null) {
                        postRefreshHook.run();
                    }
                }
            });
        }

        @Override
        protected String getErrorMessage() {
            return String.format(Messages.get().TableValue_JobError, dciId);
        }

        @Override
        protected IStatus createFailureStatus(final Exception e) {
            runInUIThread(new Runnable() {
                @Override
                public void run() {
                    if (viewer.getControl().isDisposed())
                        return;

                    if (errorLabel == null) {
                        errorLabel = new CLabel(viewer.getControl().getParent(), SWT.NONE);
                        errorLabel.setFont(JFaceResources.getBannerFont());
                        errorLabel.setImage(StatusDisplayInfo.getStatusImage(Severity.CRITICAL));
                        errorLabel.moveAbove(viewer.getControl());
                        FormData fd = new FormData();
                        fd.top = new FormAttachment(0, 0);
                        fd.left = new FormAttachment(0, 0);
                        fd.right = new FormAttachment(100, 0);
                        fd.bottom = new FormAttachment(100, 0);
                        errorLabel.setLayoutData(fd);
                        viewer.getControl().getParent().layout(true, true);
                        viewer.getControl().setVisible(false);
                    }
                    errorLabel.setText(getErrorMessage() + " (" + e.getLocalizedMessage() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
                }
            });
            return Status.OK_STATUS;
        }
    };
    job.setUser(false);
    job.start();
}

From source file:org.robotframework.ide.eclipse.main.plugin.navigator.actions.KeywordDocumentationComposite.java

License:Apache License

@Override
protected Composite createControl(final Composite parent) {
    setFormImage(RedImages.getKeywordImage());

    final Composite actualComposite = getToolkit().createComposite(parent);
    GridLayoutFactory.fillDefaults().numColumns(2).margins(3, 3).applyTo(actualComposite);

    argumentsText = getToolkit().createFormText(actualComposite, false);
    argumentsText.setFont("monospace", JFaceResources.getTextFont());
    argumentsText.setFont("monospace_inline", JFaceResources.getTextFont());
    argumentsText.setColor("header", getToolkit().getColors().getColor(IFormColors.TITLE));
    argumentsText.setFont("header", JFaceResources.getBannerFont());
    GridDataFactory.fillDefaults().span(2, 1).hint(400, SWT.DEFAULT).grab(true, false).applyTo(argumentsText);

    scrolledFormText = new ScrolledFormText(actualComposite, SWT.V_SCROLL | SWT.H_SCROLL, true);
    getToolkit().adapt(scrolledFormText);
    GridDataFactory.fillDefaults().span(2, 1).hint(400, 500).grab(true, true).applyTo(scrolledFormText);
    GridLayoutFactory.fillDefaults().applyTo(scrolledFormText);

    documentationText = scrolledFormText.getFormText();
    documentationText.setFont("monospace", JFaceResources.getTextFont());
    documentationText.setFont("monospace_inline", JFaceResources.getTextFont());
    documentationText.setColor("header", getToolkit().getColors().getColor(IFormColors.TITLE));
    documentationText.setFont("header", JFaceResources.getBannerFont());
    GridDataFactory.fillDefaults().grab(true, true).applyTo(documentationText);
    documentationText.setWhitespaceNormalized(false);

    final HyperlinkAdapter hyperlinkListener = createHyperlinkListener();
    documentationText.addHyperlinkListener(hyperlinkListener);
    argumentsText.addHyperlinkListener(hyperlinkListener);
    addDisposeListener(new DisposeListener() {
        @Override//from   w  ww  . j  a  va2  s  .co  m
        public void widgetDisposed(final DisposeEvent e) {
            documentationText.removeHyperlinkListener(hyperlinkListener);
            argumentsText.removeHyperlinkListener(hyperlinkListener);
        }
    });
    return actualComposite;
}

From source file:org.robotframework.ide.eclipse.main.plugin.navigator.actions.LibraryDocumentationComposite.java

License:Apache License

@Override
protected Composite createControl(final Composite parent) {
    setFormImage(RedImages.getBookImage());

    final Composite actualComposite = getToolkit().createComposite(parent);
    GridLayoutFactory.fillDefaults().numColumns(2).margins(3, 3).applyTo(actualComposite);

    final Label version = getToolkit().createLabel(actualComposite, "Version");
    version.setFont(JFaceResources.getHeaderFont());
    version.setForeground(getToolkit().getColors().getColor(IFormColors.TITLE));
    versionLabel = getToolkit().createLabel(actualComposite, "");
    versionLabel.setFont(JFaceResources.getHeaderFont());
    versionLabel.setForeground(getToolkit().getColors().getColor(IFormColors.TITLE));
    GridDataFactory.fillDefaults().grab(true, false).align(SWT.END, SWT.CENTER).applyTo(versionLabel);

    final Label scope = getToolkit().createLabel(actualComposite, "Scope");
    scope.setFont(JFaceResources.getBannerFont());
    scope.setForeground(getToolkit().getColors().getColor(IFormColors.TITLE));
    scopeLabel = getToolkit().createLabel(actualComposite, "");
    scopeLabel.setFont(JFaceResources.getBannerFont());
    scopeLabel.setForeground(getToolkit().getColors().getColor(IFormColors.TITLE));
    GridDataFactory.fillDefaults().grab(true, false).align(SWT.END, SWT.CENTER).applyTo(scopeLabel);

    final Label separator = getToolkit().createSeparator(actualComposite, SWT.HORIZONTAL | SWT.SHADOW_OUT);
    GridDataFactory.fillDefaults().grab(true, false).span(2, 1).applyTo(separator);

    scrolledFormText = new ScrolledFormText(actualComposite, SWT.V_SCROLL | SWT.H_SCROLL, true);
    getToolkit().adapt(scrolledFormText);
    GridDataFactory.fillDefaults().span(2, 1).hint(400, 500).grab(true, true).applyTo(scrolledFormText);
    GridLayoutFactory.fillDefaults().applyTo(scrolledFormText);

    documentationText = scrolledFormText.getFormText();
    GridDataFactory.fillDefaults().grab(true, true).applyTo(documentationText);
    documentationText.setWhitespaceNormalized(false);

    documentationText.setFont("monospace", JFaceResources.getTextFont());
    documentationText.setFont("monospace_inline", JFaceResources.getTextFont());
    documentationText.setColor("header", getToolkit().getColors().getColor(IFormColors.TITLE));
    documentationText.setFont("header", JFaceResources.getBannerFont());

    final HyperlinkAdapter hyperlinkListener = createHyperlinkListener();
    documentationText.addHyperlinkListener(hyperlinkListener);
    addDisposeListener(new DisposeListener() {
        @Override/*w  w  w.  jav  a  2s. c  o  m*/
        public void widgetDisposed(final DisposeEvent e) {
            documentationText.removeHyperlinkListener(hyperlinkListener);
        }
    });
    return actualComposite;
}

From source file:org.robotframework.ide.eclipse.main.plugin.tableeditor.settings.popup.ImportLibraryComposite.java

License:Apache License

public Composite createImportResourcesComposite(final Composite parent) {
    final Composite librariesComposite = formToolkit.createComposite(parent);
    GridLayoutFactory.fillDefaults().numColumns(4).margins(3, 3).extendedMargins(0, 0, 0, 3)
            .applyTo(librariesComposite);

    final Label titleLabel = formToolkit.createLabel(librariesComposite,
            "Libraries available in '" + fileModel.getProject().getName() + "' project");
    titleLabel.setFont(JFaceResources.getBannerFont());
    titleLabel.setForeground(formToolkit.getColors().getColor(IFormColors.TITLE));
    GridDataFactory.fillDefaults().grab(true, false).span(4, 1).hint(700, SWT.DEFAULT).applyTo(titleLabel);

    leftViewer = new TableViewer(librariesComposite);
    leftViewer.setContentProvider(new LibrariesToImportContentProvider());
    GridDataFactory.fillDefaults().span(1, 2).grab(true, true).hint(220, 250).applyTo(leftViewer.getControl());
    leftViewer.setLabelProvider(new LibrariesLabelProvider());
    leftViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override/* w  w  w. ja v  a 2  s.  c  o  m*/
        public void doubleClick(final DoubleClickEvent event) {
            final Optional<LibrarySpecification> element = Selections.getOptionalFirstElement(
                    (IStructuredSelection) event.getSelection(), LibrarySpecification.class);
            if (element.isPresent()) {
                handleLibraryAdd((Settings) leftViewer.getInput(), newArrayList(element.get()));
            }
        }
    });

    final Composite moveBtnsComposite = formToolkit.createComposite(librariesComposite);
    GridLayoutFactory.fillDefaults().numColumns(1).margins(3, 3).applyTo(moveBtnsComposite);

    final Button toImported = formToolkit.createButton(moveBtnsComposite, ">>", SWT.PUSH);
    toImported.setEnabled(false);
    toImported.addSelectionListener(createToImportedListener());
    GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.BEGINNING).applyTo(toImported);

    final Button fromImported = formToolkit.createButton(moveBtnsComposite, "<<", SWT.PUSH);
    fromImported.setEnabled(false);
    fromImported.addSelectionListener(createFromImportedListener());
    GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.BEGINNING).applyTo(fromImported);

    rightViewer = new TableViewer(librariesComposite);
    rightViewer.setContentProvider(new LibrariesAlreadyImportedContentProvider());
    GridDataFactory.fillDefaults().span(1, 2).grab(true, true).hint(220, 250).applyTo(rightViewer.getControl());
    rightViewer.setLabelProvider(new LibrariesLabelProvider());
    rightViewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(final DoubleClickEvent event) {
            final Optional<LibrarySpecification> element = Selections.getOptionalFirstElement(
                    (IStructuredSelection) event.getSelection(), LibrarySpecification.class);
            if (element.isPresent()) {
                handleLibraryRemove((Settings) rightViewer.getInput(), newArrayList(element.get()));
            }
        }
    });

    final Composite newLibBtnsComposite = formToolkit.createComposite(librariesComposite);
    GridLayoutFactory.fillDefaults().numColumns(1).applyTo(newLibBtnsComposite);

    final Button addNewLibBtn = formToolkit.createButton(newLibBtnsComposite, "Add Library", SWT.PUSH);
    addNewLibBtn.addSelectionListener(createAddNewLibListener());
    GridDataFactory.fillDefaults().applyTo(addNewLibBtn);

    final Button addNewExternalLibBtn = formToolkit.createButton(newLibBtnsComposite, "Add External Library",
            SWT.PUSH);
    addNewExternalLibBtn.addSelectionListener(createAddNewExternalLibListener());
    GridDataFactory.fillDefaults().applyTo(addNewExternalLibBtn);

    final Button editLibPathBtn = formToolkit.createButton(newLibBtnsComposite, "Edit File Path", SWT.PUSH);
    editLibPathBtn.setEnabled(false);
    editLibPathBtn.addSelectionListener(createEditLibPathListener());
    GridDataFactory.fillDefaults().indent(0, 10).applyTo(editLibPathBtn);

    final Button editLibArgsBtn = formToolkit.createButton(newLibBtnsComposite, "Edit Arguments", SWT.PUSH);
    editLibArgsBtn.setEnabled(false);
    editLibArgsBtn.addSelectionListener(createEditLibArgsListener());
    GridDataFactory.fillDefaults().applyTo(editLibArgsBtn);

    final Label separator = formToolkit.createLabel(librariesComposite, "", SWT.SEPARATOR | SWT.HORIZONTAL);
    GridDataFactory.fillDefaults().indent(0, 5).grab(false, false).span(4, 1).applyTo(separator);
    final Label tooltipLabel = formToolkit.createLabel(librariesComposite,
            "Choose libraries to import. Only libraries which are imported by project are available. "
                    + "Edit project properties if you need other libraries",
            SWT.WRAP);
    GridDataFactory.fillDefaults().span(4, 1).hint(500, SWT.DEFAULT).applyTo(tooltipLabel);

    createLeftViewerSelectionListener(toImported);
    createRightViewerSelectionListener(fromImported, editLibArgsBtn, editLibPathBtn);

    return librariesComposite;
}

From source file:org.robotframework.ide.eclipse.main.plugin.tableeditor.settings.popup.ImportResourcesComposite.java

License:Apache License

public Composite createImportResourcesComposite(final Composite parent) {
    final Composite resourcesComposite = formToolkit.createComposite(parent);
    GridLayoutFactory.fillDefaults().numColumns(2).margins(3, 3).extendedMargins(0, 0, 0, 3)
            .applyTo(resourcesComposite);
    final Label titleLabel = formToolkit.createLabel(resourcesComposite, "Imported resources:");
    titleLabel.setFont(JFaceResources.getBannerFont());
    titleLabel.setForeground(formToolkit.getColors().getColor(IFormColors.TITLE));
    GridDataFactory.fillDefaults().grab(true, false).span(2, 1).hint(700, SWT.DEFAULT).applyTo(titleLabel);

    resourcesViewer = new TableViewer(resourcesComposite);
    resourcesViewer.setContentProvider(new ImportResourcesContentProvider());
    resourcesViewer.setLabelProvider(new ResourcesLabelProvider());
    GridDataFactory.fillDefaults().grab(true, true).hint(220, 250).applyTo(resourcesViewer.getControl());

    final Composite addResourceButtons = formToolkit.createComposite(resourcesComposite);
    GridLayoutFactory.fillDefaults().numColumns(1).applyTo(addResourceButtons);
    GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.BEGINNING).applyTo(addResourceButtons);

    final Button addResourceFromWorkspaceBtn = formToolkit.createButton(addResourceButtons, "Add Resource",
            SWT.PUSH);//from   w w  w  .  java2  s .c om
    GridDataFactory.fillDefaults().grab(false, true).applyTo(addResourceFromWorkspaceBtn);
    addResourceFromWorkspaceBtn.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final Shell newShell = new Shell(shell);
            final ElementTreeSelectionDialog dialog = createAddResourceSelectionDialog(newShell, true, null);
            if (dialog.open() == Window.OK) {
                final Object[] results = dialog.getResult();
                if (results != null) {
                    final List<String> resourcesPaths = newArrayList();
                    for (int i = 0; i < results.length; i++) {
                        final IResource resource = (IResource) results[i];
                        final String path = ImportSettingFilePathResolver.createResourceRelativePath(resource,
                                currentProject);
                        resourcesPaths.add(path);
                    }
                    handleResourceAdd(resourcesPaths);
                }
            }
            newShell.dispose();
        }
    });

    final Button addExternalResourceBtn = formToolkit.createButton(addResourceButtons, "Add External Resource",
            SWT.PUSH);
    addExternalResourceBtn.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final Shell newShell = new Shell(shell);
            final FileDialog dialog = new FileDialog(newShell, SWT.OPEN);
            dialog.setFilterExtensions(new String[] { "*.*", "*.robot", "*.tsv", "*.txt" });
            dialog.setFilterPath(currentProject.getLocation().toOSString());
            final String chosenFilePath = dialog.open();
            if (chosenFilePath != null) {
                handleResourceAdd(newArrayList(ImportSettingFilePathResolver
                        .createFileRelativePath(new Path(chosenFilePath), currentProject.getLocation())
                        .toPortableString()));
            }
            newShell.dispose();
        }
    });

    final Button editResourceBtn = formToolkit.createButton(addResourceButtons, "Edit", SWT.PUSH);
    GridDataFactory.fillDefaults().indent(0, 10).applyTo(editResourceBtn);
    editResourceBtn.setEnabled(false);
    editResourceBtn.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final Settings resources = (Settings) resourcesViewer.getInput();
            final IPath path = Selections
                    .getSingleElement((IStructuredSelection) resourcesViewer.getSelection(), IPath.class);
            String filePath = null;
            final Shell newShell = new Shell(shell);
            final IResource initialProjectSelection = currentProject.findMember(path);
            if (initialProjectSelection == null) {
                final FileDialog dialog = new FileDialog(newShell, SWT.OPEN);
                dialog.setFilterExtensions(new String[] { "*.*", "*.robot", "*.tsv", "*.txt" });
                final IPath initialExtSelection = ImportSettingFilePathResolver.createFileAbsolutePath(path,
                        currentProject);
                dialog.setFilterPath(initialExtSelection.removeLastSegments(1).toOSString());
                dialog.setFileName(initialExtSelection.lastSegment());
                final String chosenFilePath = dialog.open();
                if (chosenFilePath != null) {
                    filePath = ImportSettingFilePathResolver
                            .createFileRelativePath(new Path(chosenFilePath), currentProject.getLocation())
                            .toPortableString();
                }
            } else {
                final ElementTreeSelectionDialog dialog = createAddResourceSelectionDialog(newShell, false,
                        initialProjectSelection);
                if (dialog.open() == Window.OK) {
                    final Object result = dialog.getFirstResult();
                    if (result != null) {
                        final IResource resource = (IResource) result;
                        filePath = ImportSettingFilePathResolver.createResourceRelativePath(resource,
                                currentProject);
                    }
                }
            }
            newShell.dispose();
            if (filePath != null) {
                handleResourceEdit(resources, path, filePath);
            }
        }
    });

    final Button removeResourceBtn = formToolkit.createButton(addResourceButtons, "Remove", SWT.PUSH);
    GridDataFactory.fillDefaults().applyTo(removeResourceBtn);
    removeResourceBtn.setEnabled(false);
    removeResourceBtn.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final Settings resources = (Settings) resourcesViewer.getInput();
            final List<IPath> paths = Selections
                    .getElements((IStructuredSelection) resourcesViewer.getSelection(), IPath.class);
            handleResourceRemove(resources, paths);
        }
    });
    createViewerSelectionListener(removeResourceBtn, editResourceBtn);
    ViewersConfigurator.enableDeselectionPossibility(resourcesViewer);
    return resourcesComposite;
}

From source file:org.robotframework.ide.eclipse.main.plugin.tableeditor.settings.popup.ImportVariablesComposite.java

License:Apache License

public Composite createImportVariablesComposite(final Composite parent) {
    final Composite variablesComposite = formToolkit.createComposite(parent);
    GridLayoutFactory.fillDefaults().numColumns(2).margins(3, 3).extendedMargins(0, 0, 0, 3)
            .applyTo(variablesComposite);
    final Label titleLabel = formToolkit.createLabel(variablesComposite, "Imported variables files:");
    titleLabel.setFont(JFaceResources.getBannerFont());
    titleLabel.setForeground(formToolkit.getColors().getColor(IFormColors.TITLE));
    GridDataFactory.fillDefaults().grab(true, false).span(2, 1).hint(700, SWT.DEFAULT).applyTo(titleLabel);

    variablesViewer = new TableViewer(variablesComposite);
    variablesViewer.setContentProvider(new ImportVariablesContentProvider());
    variablesViewer.setLabelProvider(new VariablesLabelProvider());
    GridDataFactory.fillDefaults().grab(true, true).hint(220, 250).applyTo(variablesViewer.getControl());

    final Composite addVariablesButtons = formToolkit.createComposite(variablesComposite);
    GridLayoutFactory.fillDefaults().numColumns(1).applyTo(addVariablesButtons);
    GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.BEGINNING).applyTo(addVariablesButtons);

    final Button addVariableFromWorkspaceBtn = formToolkit.createButton(addVariablesButtons, "Add Variables",
            SWT.PUSH);//from  w  ww.  j  a  v  a  2s .  co  m
    GridDataFactory.fillDefaults().grab(false, true).applyTo(addVariableFromWorkspaceBtn);
    addVariableFromWorkspaceBtn.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final Shell newShell = new Shell(shell);
            final ElementTreeSelectionDialog dialog = createAddVariableSelectionDialog(newShell, true, null);
            if (dialog.open() == Window.OK) {
                final Object[] results = dialog.getResult();
                if (results != null) {
                    final List<String> variablesPaths = newArrayList();
                    for (int i = 0; i < results.length; i++) {
                        final IResource resource = (IResource) results[i];
                        final String path = ImportSettingFilePathResolver.createResourceRelativePath(resource,
                                currentProject);
                        variablesPaths.add(path);
                    }
                    handleVariableAdd(variablesPaths);
                }
            }
            newShell.dispose();
        }
    });

    final Button addExternalVariablesBtn = formToolkit.createButton(addVariablesButtons,
            "Add External Variables", SWT.PUSH);
    addExternalVariablesBtn.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final Shell newShell = new Shell(shell);
            final FileDialog dialog = new FileDialog(newShell, SWT.OPEN);
            dialog.setFilterExtensions(new String[] { "*.py", "*.*" });
            dialog.setFilterPath(currentProject.getLocation().toOSString());
            final String chosenFilePath = dialog.open();
            if (chosenFilePath != null) {
                handleVariableAdd(newArrayList(
                        ImportSettingFilePathResolver.createFileRelativePath(new Path(chosenFilePath),
                                currentProject.getProject().getLocation()).toPortableString()));
            }
            newShell.dispose();
        }
    });

    final Button editVariablesBtn = formToolkit.createButton(addVariablesButtons, "Edit File Path", SWT.PUSH);
    GridDataFactory.fillDefaults().indent(0, 10).applyTo(editVariablesBtn);
    editVariablesBtn.setEnabled(false);
    editVariablesBtn.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final Settings variables = (Settings) variablesViewer.getInput();
            final ImportArguments variablesFile = Selections.getSingleElement(
                    (IStructuredSelection) variablesViewer.getSelection(), ImportArguments.class);
            final List<String> args = variablesFile.getArgs();
            final Shell newShell = new Shell(shell);
            if (args != null && !args.isEmpty()) {
                final IPath path = new Path(args.get(0));
                final IResource initialProjectSelection = currentProject.findMember(path);
                String filePath = null;
                if (initialProjectSelection == null) {
                    final FileDialog dialog = new FileDialog(newShell, SWT.OPEN);
                    dialog.setFilterExtensions(new String[] { "*.py", "*.*" });
                    final IPath initialExtSelection = ImportSettingFilePathResolver.createFileAbsolutePath(path,
                            currentProject);
                    dialog.setFilterPath(initialExtSelection.removeLastSegments(1).toOSString());
                    dialog.setFileName(initialExtSelection.lastSegment());
                    final String chosenFilePath = dialog.open();
                    if (chosenFilePath != null) {
                        filePath = ImportSettingFilePathResolver
                                .createFileRelativePath(new Path(chosenFilePath), currentProject.getLocation())
                                .toPortableString();
                    }
                } else {
                    final ElementTreeSelectionDialog dialog = createAddVariableSelectionDialog(newShell, false,
                            initialProjectSelection);
                    if (dialog.open() == Window.OK) {
                        final Object result = dialog.getFirstResult();
                        if (result != null) {
                            final IResource resource = (IResource) result;
                            filePath = ImportSettingFilePathResolver.createResourceRelativePath(resource,
                                    currentProject);
                        }
                    }
                }
                if (filePath != null) {
                    handleVariablesPathEdit(variables, variablesFile, filePath);
                }
            }
            newShell.dispose();
        }
    });

    final Button editVariablesArgsBtn = formToolkit.createButton(addVariablesButtons, "Edit File Arguments",
            SWT.PUSH);
    GridDataFactory.fillDefaults().applyTo(editVariablesArgsBtn);
    editVariablesArgsBtn.setEnabled(false);
    editVariablesArgsBtn.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final Settings variables = (Settings) variablesViewer.getInput();
            final ImportArguments variablesFile = Selections.getSingleElement(
                    (IStructuredSelection) variablesViewer.getSelection(), ImportArguments.class);
            if (!variablesFile.getArgs().isEmpty()) {
                final List<String> args = variablesFile.getArgs().subList(1, variablesFile.getArgs().size());
                final Shell newShell = new Shell(shell);
                final ImportSettingFileArgumentsDialog dialog = new ImportSettingFileArgumentsDialog(newShell,
                        args);
                if (dialog.open() == Window.OK) {
                    final List<String> newArgs = dialog.getArguments();
                    handleVariablesArgsEdit(variables, variablesFile, newArgs);
                }
                newShell.dispose();
            }
        }
    });

    final Button removeVariablesBtn = formToolkit.createButton(addVariablesButtons, "Remove", SWT.PUSH);
    GridDataFactory.fillDefaults().applyTo(removeVariablesBtn);
    removeVariablesBtn.setEnabled(false);
    removeVariablesBtn.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent e) {
            final Settings variables = (Settings) variablesViewer.getInput();
            final List<ImportArguments> paths = Selections
                    .getElements((IStructuredSelection) variablesViewer.getSelection(), ImportArguments.class);
            handleVariableRemove(variables, paths);
        }
    });

    createViewerSelectionListener(removeVariablesBtn, editVariablesBtn, editVariablesArgsBtn);
    ViewersConfigurator.enableDeselectionPossibility(variablesViewer);
    return variablesComposite;
}