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

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

Introduction

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

Prototype

public static Font getDialogFont() 

Source Link

Document

Returns the JFace's dialog font.

Usage

From source file:org.eclipse.team.internal.ui.synchronize.ConfigureSynchronizeScheduleComposite.java

License:Open Source License

protected void createMainDialogArea(Composite parent) {
    GC gc = new GC(parent);
    gc.setFont(JFaceResources.getDialogFont());
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();/*ww w  .j a va 2  s .  c  om*/
    final GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 3;
    gridLayout.marginHeight = 0;
    gridLayout.marginWidth = 0;
    gridLayout.horizontalSpacing = Dialog.convertHorizontalDLUsToPixels(fontMetrics,
            IDialogConstants.HORIZONTAL_SPACING);
    gridLayout.verticalSpacing = Dialog.convertVerticalDLUsToPixels(fontMetrics,
            IDialogConstants.VERTICAL_SPACING);
    setLayout(gridLayout);
    setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    Composite area = this;

    createWrappingLabel(area,
            NLS.bind(TeamUIMessages.ConfigureRefreshScheduleDialog_1, new String[] {
                    Utils.shortenText(SynchronizeView.MAX_NAME_LENGTH, schedule.getParticipant().getName()) }),
            0, 3);

    enableBackgroundRefresh = new Button(area, SWT.CHECK);
    GridData gridData = new GridData();
    gridData.horizontalSpan = 3;
    enableBackgroundRefresh.setLayoutData(gridData);
    enableBackgroundRefresh.setText(TeamUIMessages.ConfigureRefreshScheduleDialog_3);
    enableBackgroundRefresh.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            updateEnablements();
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });

    synchronizeAt = createIndentedLabel(area, TeamUIMessages.ConfigureRefreshScheduleDialog_3a, 20);

    startTime = new DateTime(area, SWT.TIME | SWT.BORDER);
    gridData = new GridData();
    gridData.horizontalSpan = 2;
    startTime.setLayoutData(gridData);

    repeatEvery = createIndentedButton(area, TeamUIMessages.ConfigureRefreshScheduleDialog_4, 20);
    repeatEvery.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            updateEnablements();
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });

    timeInterval = new Text(area, SWT.BORDER | SWT.RIGHT);
    gridData = new GridData();
    gridData.widthHint = 35;
    timeInterval.setLayoutData(gridData);
    timeInterval.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            updateEnablements();
        }
    });
    timeInterval.addVerifyListener(new VerifyListener() {
        public void verifyText(VerifyEvent e) {
            String string = e.text;
            char[] chars = new char[string.length()];
            string.getChars(0, chars.length, chars, 0);
            for (int i = 0; i < chars.length; i++) {
                if (!('0' <= chars[i] && chars[i] <= '9')) {
                    e.doit = false;
                    return;
                }
            }
        }
    });

    hoursOrMinutes = new Combo(area, SWT.READ_ONLY);
    hoursOrMinutes.setItems(new String[] { TeamUIMessages.ConfigureRefreshScheduleDialog_5,
            TeamUIMessages.ConfigureRefreshScheduleDialog_6 }); // 
    hoursOrMinutes.setLayoutData(new GridData());

    final Label label = new Label(area, SWT.WRAP);
    gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 3;
    label.setLayoutData(gridData);
    label.setText(NLS.bind(TeamUIMessages.ConfigureRefreshScheduleDialog_2,
            new String[] { SubscriberRefreshSchedule.refreshEventAsString(schedule.getLastRefreshEvent()) }));

    initializeValues();
    updateEnablements();
}

From source file:org.eclipse.team.svn.ui.dialog.DefaultDialog.java

License:Open Source License

public static int convertHeightInCharsToPixels(Control control, int chars) {
    GC gc = new GC(control);
    gc.setFont(JFaceResources.getDialogFont());
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();/*from   w ww  . j  a  v a2 s.  co m*/
    return fontMetrics.getHeight() * chars;
}

From source file:org.eclipse.thym.ui.config.internal.PropertiesPage.java

License:Open Source License

private Button createButton(Composite parent, String label) {
    Button button = formToolkit.createButton(parent, label, SWT.NULL);
    button.setFont(JFaceResources.getDialogFont());

    PixelConverter converter = new PixelConverter(button);
    int widthHint = converter.convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
    widthHint = Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
    GridDataFactory.swtDefaults().align(SWT.FILL, SWT.BEGINNING).hint(widthHint, SWT.DEFAULT).applyTo(button);

    return button;
}

From source file:org.eclipse.thym.ui.plugins.internal.PluginRestorePage.java

License:Open Source License

private int getMinColumnWidth(Control control, String label) {
    GC gc = new GC(control);
    gc.setFont(JFaceResources.getDialogFont());
    return gc.stringExtent(label).x + 10;
}

From source file:org.eclipse.tm.te.ui.forms.parts.AbstractPartWithButtons.java

License:Open Source License

/**
 * Create the buttons panel.//from w  w w  .j a va  2 s  .c o m
 *
 * @param parent The parent composite. Must not be <code>null</code>.
 * @param toolkit The form toolkit or <code>null</code>.
 *
 * @return The buttons panel composite or <code>null</code>.
 */
protected Composite createButtonsPanel(Composite parent, FormToolkit toolkit) {
    if (labels.length == 0)
        return null;

    buttons = new Button[labels.length];

    Composite panel = createComposite(parent, toolkit);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    panel.setLayout(layout);
    GridData layoutData = new GridData(SWT.BEGINNING, SWT.FILL, false, true);
    panel.setLayoutData(layoutData);
    panel.setBackground(parent.getBackground());

    SelectionListener listener = new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            AbstractPartWithButtons.this.onButtonSelected((Button) e.widget);
        }
    };

    for (int i = 0; i < labels.length; i++) {
        if (labels[i] != null) {
            Button button = toolkit != null ? toolkit.createButton(panel, null, SWT.PUSH)
                    : new Button(panel, SWT.PUSH);
            Assert.isNotNull(button);

            button.setFont(JFaceResources.getDialogFont());
            button.setText(labels[i]);
            button.setData(Integer.valueOf(i));
            button.addSelectionListener(listener);

            layoutData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
            layoutData.widthHint = Math.max(
                    new PixelConverter(button).convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH),
                    button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
            button.setLayoutData(layoutData);

            buttons[i] = button;
        } else {
            createEmptySpace(panel, 1, toolkit);
        }
    }

    return panel;
}

From source file:org.eclipse.tm.terminal.view.ui.preferences.PreferencePage.java

License:Open Source License

@Override
protected Control createContents(final Composite parent) {
    final GC gc = new GC(parent);
    gc.setFont(JFaceResources.getDialogFont());

    Composite panel = new Composite(parent, SWT.NONE);
    panel.setLayout(new GridLayout());
    GridData layoutData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
    panel.setLayoutData(layoutData);// ww w.j  a va  2s.co  m

    Label label = new Label(panel, SWT.HORIZONTAL);
    label.setText(Messages.PreferencePage_label);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    if (!Platform.OS_WIN32.equals(Platform.getOS())) {
        Group group = new Group(panel, SWT.NONE);
        group.setText(Messages.PreferencePage_command_label);
        group.setLayout(new GridLayout(2, false));
        group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));

        command = new Text(group, SWT.SINGLE | SWT.BORDER);
        command.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
        command.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent e) {
                boolean valid = true;
                String message = null;

                String text = command.getText();
                if (text != null && !"".equals(text.trim())) { //$NON-NLS-1$
                    IPath p = new Path(text.trim());
                    valid = p.toFile().isFile() && p.toFile().canRead() && p.toFile().canExecute();
                    if (!valid)
                        message = Messages.PreferencePage_command_invalid;
                }

                setValid(valid);
                setErrorMessage(message);
            }
        });

        commandBrowseButton = new Button(group, SWT.PUSH);
        commandBrowseButton.setText(Messages.PreferencePage_command_button_browse);
        layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
        layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 14);
        commandBrowseButton.setLayoutData(layoutData);
        commandBrowseButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                FileDialog dialog = new FileDialog(parent.getShell(), SWT.OPEN);

                String text = command.getText();
                if (text != null && !"".equals(text.trim())) { //$NON-NLS-1$
                    IPath p = new Path(text);

                    if (p.toFile().isFile() || !p.toFile().exists()) {
                        dialog.setFilterPath(p.removeLastSegments(1).toOSString());
                        dialog.setFileName(p.lastSegment());
                    } else if (p.toFile().isDirectory()) {
                        dialog.setFilterPath(p.toOSString());
                    }
                }

                String selected = dialog.open();
                if (selected != null) {
                    IPath sp = new Path(selected);
                    command.setText(sp.toOSString());
                }
            }
        });

        String cmd = UIPlugin.getScopedPreferences()
                .getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX);
        if (cmd != null && !"".equals(cmd)) { //$NON-NLS-1$
            command.setText(new Path(cmd).toOSString());
        }

        Composite argsPanel = new Composite(group, SWT.NONE);
        GridLayout layout = new GridLayout(2, false);
        layout.marginHeight = 0;
        layout.marginWidth = 0;
        argsPanel.setLayout(layout);
        layoutData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
        layoutData.horizontalSpan = 2;
        argsPanel.setLayoutData(layoutData);

        label = new Label(argsPanel, SWT.NONE);
        label.setText(Messages.PreferencePage_command_arguments_label);

        arguments = new Text(argsPanel, SWT.SINGLE | SWT.BORDER);
        arguments.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

        String args = UIPlugin.getScopedPreferences()
                .getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_DEFAULT_SHELL_UNIX_ARGS);
        if (args != null && !"".equals(args)) { //$NON-NLS-1$
            arguments.setText(args);
        }

        NoteCompositeHelper.createNoteComposite(group.getFont(), group,
                Messages.PreferencePage_command_note_label, Messages.PreferencePage_command_note_text);
    }

    Group group = new Group(panel, SWT.NONE);
    group.setText(Messages.PreferencePage_workingDir_label);
    group.setLayout(new GridLayout(hasVariablesButton ? 3 : 2, false));
    group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));

    workingDir = new Combo(group, SWT.DROP_DOWN);
    Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
    if (bundle != null && bundle.getState() != Bundle.UNINSTALLED && bundle.getState() != Bundle.STOPPING) {
        workingDir.setItems(new String[] { Messages.PreferencePage_workingDir_userhome_label,
                Messages.PreferencePage_workingDir_eclipsehome_label,
                Messages.PreferencePage_workingDir_eclipsews_label });
    } else {
        workingDir.setItems(new String[] { Messages.PreferencePage_workingDir_userhome_label,
                Messages.PreferencePage_workingDir_eclipsehome_label });
    }
    workingDir.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    workingDir.select(0);
    workingDir.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            boolean valid = true;
            String message = null;

            String text = workingDir.getText();
            if (text != null && !"".equals(text.trim()) //$NON-NLS-1$
                    && !Messages.PreferencePage_workingDir_userhome_label.equals(text)
                    && !Messages.PreferencePage_workingDir_eclipsehome_label.equals(text)
                    && !Messages.PreferencePage_workingDir_eclipsews_label.equals(text)) {
                try {
                    // Resolve possible dynamic variables
                    IStringVariableManager vm = VariablesPlugin.getDefault().getStringVariableManager();
                    String resolved = vm.performStringSubstitution(text.trim());

                    IPath p = new Path(resolved);
                    valid = p.toFile().canRead() && p.toFile().isDirectory();
                    if (!valid)
                        message = Messages.PreferencePage_workingDir_invalid;
                } catch (CoreException ex) {
                    valid = false;
                    message = ex.getLocalizedMessage();
                }
            }

            setValid(valid);
            setErrorMessage(message);
        }
    });

    browseButton = new Button(group, SWT.PUSH);
    browseButton.setText(Messages.PreferencePage_workingDir_button_browse);
    layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
    layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 14);
    browseButton.setLayoutData(layoutData);
    browseButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IPath uh = null;
            IPath eh = null;
            IPath ew = null;

            // HOME
            String home = System.getProperty("user.home"); //$NON-NLS-1$
            if (home != null && !"".equals(home)) //$NON-NLS-1$
                uh = new Path(home);

            // ECLIPSE_HOME
            String eclipseHomeLocation = System.getProperty("eclipse.home.location"); //$NON-NLS-1$
            if (eclipseHomeLocation != null) {
                try {
                    URI uri = URIUtil.fromString(eclipseHomeLocation);
                    File f = URIUtil.toFile(uri);
                    eh = new Path(f.getAbsolutePath());
                } catch (URISyntaxException ex) {
                    /* ignored on purpose */ }
            }

            // ECLIPSE_WORKSPACE
            Bundle bundle = Platform.getBundle("org.eclipse.core.resources"); //$NON-NLS-1$
            if (bundle != null && bundle.getState() != Bundle.UNINSTALLED
                    && bundle.getState() != Bundle.STOPPING) {
                if (org.eclipse.core.resources.ResourcesPlugin.getWorkspace() != null
                        && org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot() != null
                        && org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot()
                                .getLocation() != null) {
                    ew = org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRoot().getLocation();
                }
            }

            DirectoryDialog dialog = new DirectoryDialog(parent.getShell(), SWT.OPEN);

            // Determine the filter path
            String text = workingDir.getText();
            if (Messages.PreferencePage_workingDir_userhome_label.equals(text)) {
                dialog.setFilterPath(uh.toOSString());
            } else if (Messages.PreferencePage_workingDir_eclipsehome_label.equals(text)) {
                dialog.setFilterPath(eh.toOSString());
            } else if (Messages.PreferencePage_workingDir_eclipsews_label.equals(text)) {
                dialog.setFilterPath(ew.toOSString());
            } else if (text != null && !"".equals(text.trim())) { //$NON-NLS-1$
                try {
                    // Resolve possible dynamic variables
                    IStringVariableManager vm = VariablesPlugin.getDefault().getStringVariableManager();
                    String resolved = vm.performStringSubstitution(text.trim());
                    dialog.setFilterPath(resolved);
                } catch (CoreException ex) {
                    if (Platform.inDebugMode()) {
                        UIPlugin.getDefault().getLog().log(ex.getStatus());
                    }
                }
            }

            String selected = dialog.open();
            if (selected != null) {
                IPath sp = new Path(selected);

                if (uh.equals(sp)) {
                    workingDir.select(0);
                } else if (eh.equals(sp)) {
                    workingDir.select(1);
                } else if (ew.equals(sp)) {
                    workingDir.select(2);
                } else {
                    workingDir.setText(sp.toOSString());
                }
            }
        }
    });

    if (hasVariablesButton) {
        variablesButton = new Button(group, SWT.PUSH);
        variablesButton.setText(Messages.PreferencePage_workingDir_button_variables);
        layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
        layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 14);
        variablesButton.setLayoutData(layoutData);
        variablesButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                org.eclipse.debug.ui.StringVariableSelectionDialog dialog = new org.eclipse.debug.ui.StringVariableSelectionDialog(
                        getShell());
                dialog.open();
                String expression = dialog.getVariableExpression();
                if (expression != null) {
                    if ("${eclipse_home}".equals(expression)) { //$NON-NLS-1$
                        workingDir.select(1);
                    } else if ("${workspace_loc}".equals(expression)) { //$NON-NLS-1$
                        workingDir.select(2);
                    } else {
                        workingDir.setText(expression);
                    }
                }
            }
        });
    }

    String initialCwd = UIPlugin.getScopedPreferences()
            .getString(IPreferenceKeys.PREF_LOCAL_TERMINAL_INITIAL_CWD);
    if (initialCwd == null || IPreferenceKeys.PREF_INITIAL_CWD_USER_HOME.equals(initialCwd)
            || "".equals(initialCwd.trim())) { //$NON-NLS-1$
        workingDir.select(0);
    } else if (IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_HOME.equals(initialCwd)
            || "${eclipse_home}".equals(initialCwd)) { //$NON-NLS-1$
        workingDir.select(1);
    } else if (IPreferenceKeys.PREF_INITIAL_CWD_ECLIPSE_WS.equals(initialCwd)
            || "${workspace_loc}".equals(initialCwd)) { //$NON-NLS-1$
        workingDir.select(2);
    } else {
        workingDir.setText(new Path(initialCwd).toOSString());
    }

    NoteCompositeHelper.createNoteComposite(group.getFont(), group,
            Messages.PreferencePage_workingDir_note_label, Messages.PreferencePage_workingDir_note_text);

    group = new Group(panel, SWT.NONE);
    group.setText(Messages.PreferencePage_executables_label);
    group.setLayout(new GridLayout(2, false));
    group.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));

    viewer = new TableViewer(group, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);

    Table table = viewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    TableColumn column = new TableColumn(table, SWT.LEFT);
    column.setText(Messages.PreferencePage_executables_column_name_label);
    column = new TableColumn(table, SWT.LEFT);
    column.setText(Messages.PreferencePage_executables_column_path_label);

    ColumnViewerToolTipSupport.enableFor(viewer);

    TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(35));
    tableLayout.addColumnData(new ColumnWeightData(65));
    table.setLayout(tableLayout);

    layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.heightHint = Dialog.convertHeightInCharsToPixels(gc.getFontMetrics(), 10);
    table.setLayoutData(layoutData);

    Composite buttonsPanel = new Composite(group, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    buttonsPanel.setLayout(layout);
    buttonsPanel.setLayoutData(new GridData(SWT.LEAD, SWT.BEGINNING, false, false));

    addButton = new Button(buttonsPanel, SWT.PUSH);
    addButton.setText(Messages.PreferencePage_executables_button_add_label);
    layoutData = new GridData(SWT.FILL, SWT.CENTER, false, false);
    layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 10);
    addButton.setLayoutData(layoutData);
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            ExternalExecutablesDialog dialog = new ExternalExecutablesDialog(PreferencePage.this.getShell(),
                    false);
            if (dialog.open() == Window.OK) {
                // Get the executable properties and add it to the the list
                Map<String, String> executableData = dialog.getExecutableData();
                if (executableData != null && !executables.contains(executableData)) {
                    executables.add(executableData);
                    viewer.refresh();
                }
            }
        }
    });

    editButton = new Button(buttonsPanel, SWT.PUSH);
    editButton.setText(Messages.PreferencePage_executables_button_edit_label);
    layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
    layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 10);
    editButton.setLayoutData(layoutData);
    editButton.addSelectionListener(new SelectionAdapter() {
        @SuppressWarnings("unchecked")
        @Override
        public void widgetSelected(SelectionEvent e) {
            ISelection s = viewer.getSelection();
            if (s instanceof IStructuredSelection && !s.isEmpty()) {
                Object element = ((IStructuredSelection) s).getFirstElement();
                if (element instanceof Map) {
                    final Map<String, String> m = (Map<String, String>) element;
                    ExternalExecutablesDialog dialog = new ExternalExecutablesDialog(
                            PreferencePage.this.getShell(), true);
                    dialog.setExecutableData(m);
                    if (dialog.open() == Window.OK) {
                        Map<String, String> executableData = dialog.getExecutableData();
                        if (executableData != null) {
                            m.clear();
                            m.putAll(executableData);
                            viewer.refresh();
                        }
                    }
                }
            }
        }
    });

    removeButton = new Button(buttonsPanel, SWT.PUSH);
    removeButton.setText(Messages.PreferencePage_executables_button_remove_label);
    layoutData = new GridData(SWT.FILL, SWT.CENTER, true, false);
    layoutData.widthHint = Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 10);
    removeButton.setLayoutData(layoutData);
    removeButton.addSelectionListener(new SelectionAdapter() {
        @SuppressWarnings("unchecked")
        @Override
        public void widgetSelected(SelectionEvent e) {
            ISelection s = viewer.getSelection();
            if (s instanceof IStructuredSelection && !s.isEmpty()) {
                Iterator<?> iterator = ((IStructuredSelection) s).iterator();
                while (iterator.hasNext()) {
                    Object element = iterator.next();
                    if (element instanceof Map) {
                        Map<String, Object> m = (Map<String, Object>) element;
                        executables.remove(m);
                    }
                    viewer.refresh();
                }
            }
        }
    });

    viewer.setContentProvider(new IStructuredContentProvider() {
        @Override
        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof List && !((List<?>) inputElement).isEmpty()) {
                return ((List<?>) inputElement).toArray();
            }
            return NO_ELEMENTS;
        }

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

        @Override
        public void dispose() {
        }
    });

    viewer.setLabelProvider(new ITableLabelProvider() {
        @SuppressWarnings("unchecked")
        @Override
        public String getColumnText(Object element, int columnIndex) {
            if (element instanceof Map) {
                Map<String, Object> m = (Map<String, Object>) element;

                switch (columnIndex) {
                case 0:
                    return (String) m.get(IExternalExecutablesProperties.PROP_NAME);
                case 1:
                    return (String) m.get(IExternalExecutablesProperties.PROP_PATH);
                }
            }
            return null;
        }

        @SuppressWarnings("unchecked")
        @Override
        public Image getColumnImage(Object element, int columnIndex) {
            Image i = null;

            if (element instanceof Map) {
                switch (columnIndex) {
                case 0:
                    Map<String, Object> m = (Map<String, Object>) element;
                    String icon = (String) m.get(IExternalExecutablesProperties.PROP_ICON);
                    if (icon != null) {
                        i = images.get(icon);
                        if (i == null) {
                            ImageData id = ExternalExecutablesManager.loadImage(icon);
                            if (id != null) {
                                ImageDescriptor d = ImageDescriptor.createFromImageData(id);
                                if (d != null)
                                    i = d.createImage();
                                if (i != null)
                                    images.put(icon, i);
                            }
                        }
                    }
                    break;
                case 1:
                    break;
                }
            }

            return i;
        }

        @Override
        public void removeListener(ILabelProviderListener listener) {
        }

        @Override
        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        @Override
        public void dispose() {
        }

        @Override
        public void addListener(ILabelProviderListener listener) {
        }
    });

    List<Map<String, String>> l = ExternalExecutablesManager.load();
    if (l != null)
        executables.addAll(l);

    viewer.setInput(executables);

    viewer.addPostSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
        }
    });

    updateButtons();

    gc.dispose();

    return panel;
}

From source file:org.eclipse.tm4e.languageconfiguration.internal.preferences.LanguageConfigurationPreferencePage.java

License:Open Source License

/**
 * Create grammar list content.//from w  w  w.  j a  v  a 2 s .c  o m
 *
 * @param parent
 */
private void createDefinitionsListContent(Composite parent) {
    Label description = new Label(parent, SWT.NONE);
    description.setText(LanguageConfigurationMessages.LanguageConfigurationPreferencePage_description2);
    description.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
    Composite tableComposite = new Composite(parent, SWT.NONE);
    GridData data = new GridData(GridData.FILL_BOTH);
    data.widthHint = 360;
    data.heightHint = convertHeightInCharsToPixels(10);
    tableComposite.setLayoutData(data);

    TableColumnLayout columnLayout = new TableColumnLayout();
    tableComposite.setLayout(columnLayout);
    Table table = new Table(tableComposite,
            SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);

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

    GC gc = new GC(getShell());
    gc.setFont(JFaceResources.getDialogFont());

    ColumnViewerComparator viewerComparator = new ColumnViewerComparator();

    definitionViewer = new TableViewer(table);

    TableColumn column1 = new TableColumn(table, SWT.NONE);
    column1.setText(LanguageConfigurationMessages.LanguageConfigurationPreferencePage_contentType);
    int minWidth = computeMinimumColumnWidth(gc,
            LanguageConfigurationMessages.LanguageConfigurationPreferencePage_contentType);
    columnLayout.setColumnData(column1, new ColumnWeightData(2, minWidth, true));
    column1.addSelectionListener(new ColumnSelectionAdapter(column1, definitionViewer, 0, viewerComparator));

    TableColumn column2 = new TableColumn(table, SWT.NONE);
    column2.setText(LanguageConfigurationMessages.LanguageConfigurationPreferencePage_path);
    minWidth = computeMinimumColumnWidth(gc,
            LanguageConfigurationMessages.LanguageConfigurationPreferencePage_path);
    columnLayout.setColumnData(column2, new ColumnWeightData(2, minWidth, true));
    column2.addSelectionListener(new ColumnSelectionAdapter(column2, definitionViewer, 1, viewerComparator));

    TableColumn column3 = new TableColumn(table, SWT.NONE);
    column3.setText(LanguageConfigurationMessages.LanguageConfigurationPreferencePage_pluginId);
    minWidth = computeMinimumColumnWidth(gc,
            LanguageConfigurationMessages.LanguageConfigurationPreferencePage_pluginId);
    columnLayout.setColumnData(column3, new ColumnWeightData(2, minWidth, true));
    column3.addSelectionListener(new ColumnSelectionAdapter(column3, definitionViewer, 2, viewerComparator));

    gc.dispose();

    definitionViewer.setLabelProvider(new LanguageConfigurationLabelProvider());
    definitionViewer.setContentProvider(new LanguageConfigurationContentProvider());
    definitionViewer.setComparator(viewerComparator);

    definitionViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent e) {
            IStructuredSelection selection = definitionViewer.getStructuredSelection();
            infoWidget.refresh(null, manager);
            if (selection.isEmpty()) {
                return;
            }
            ILanguageConfigurationDefinition definition = (ILanguageConfigurationDefinition) (selection)
                    .getFirstElement();
            // Update button
            definitionRemoveButton.setEnabled(definition.getPluginId() == null);
            selectDefinition(definition);
        }

        private void selectDefinition(ILanguageConfigurationDefinition definition) {
            infoWidget.refresh(definition, manager);
        }
    });

    // Specify default sorting
    table.setSortColumn(column1);
    table.setSortDirection(viewerComparator.getDirection());

    BidiUtils.applyTextDirection(definitionViewer.getControl(), BidiUtils.BTD_DEFAULT);

    Composite buttons = new Composite(parent, SWT.NONE);
    buttons.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    buttons.setLayout(layout);

    definitionNewButton = new Button(buttons, SWT.PUSH);
    definitionNewButton.setText(LanguageConfigurationMessages.LanguageConfigurationPreferencePage_new);
    definitionNewButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    definitionNewButton.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event e) {
            add();
        }

        private void add() {
            // Open import wizard for language configurations.
            LanguageConfigurationImportWizard wizard = new LanguageConfigurationImportWizard(false);
            wizard.setRegistryManager(manager);
            WizardDialog dialog = new WizardDialog(getShell(), wizard);
            if (dialog.open() == Window.OK) {
                ILanguageConfigurationDefinition created = wizard.getCreatedDefinition();
                definitionViewer.refresh();
                definitionViewer.setSelection(new StructuredSelection(created));
            }
        }
    });

    definitionRemoveButton = new Button(buttons, SWT.PUSH);
    definitionRemoveButton.setText(LanguageConfigurationMessages.LanguageConfigurationPreferencePage_remove);
    definitionRemoveButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    definitionRemoveButton.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event e) {
            remove();
        }

        private void remove() {
            Collection<ILanguageConfigurationDefinition> definitions = getSelectedUserDefinitions();
            if (!definitions.isEmpty()) {
                for (ILanguageConfigurationDefinition definition : definitions) {
                    manager.unregisterLanguageConfigurationDefinition(definition);
                }
                definitionViewer.refresh();
            }
        }
    });
}

From source file:org.eclipse.tm4e.languageconfiguration.internal.widgets.AutoClosingPairConditionalTableWidget.java

License:Open Source License

public AutoClosingPairConditionalTableWidget(Table table) {
    super(table);
    setLabelProvider(new AutoClosingPairConditionalLabelProvider());
    GC gc = new GC(table.getShell());
    gc.setFont(JFaceResources.getDialogFont());
    TableColumnLayout columnLayout = new TableColumnLayout();

    TableColumn column2 = new TableColumn(table, SWT.NONE);
    column2.setText(LanguageConfigurationMessages.AutoClosingPairConditionalTableWidget_notIn);
    int minWidth = computeMinimumColumnWidth(gc,
            LanguageConfigurationMessages.AutoClosingPairConditionalTableWidget_notIn);
    columnLayout.setColumnData(column2, new ColumnWeightData(2, minWidth, true));
}

From source file:org.eclipse.tm4e.languageconfiguration.internal.widgets.CharacterPairsTableWidget.java

License:Open Source License

public CharacterPairsTableWidget(Table table) {
    super(table);
    setContentProvider(new CharacterPairContentProvider());
    setLabelProvider(new CharacterPairLabelProvider());

    GC gc = new GC(table.getShell());
    gc.setFont(JFaceResources.getDialogFont());
    TableColumnLayout columnLayout = new TableColumnLayout();

    TableColumn column1 = new TableColumn(table, SWT.NONE);
    column1.setText(LanguageConfigurationMessages.CharacterPairsTableWidget_start);
    int minWidth = computeMinimumColumnWidth(gc, LanguageConfigurationMessages.CharacterPairsTableWidget_start);
    columnLayout.setColumnData(column1, new ColumnWeightData(2, minWidth, true));

    TableColumn column2 = new TableColumn(table, SWT.NONE);
    column2.setText(LanguageConfigurationMessages.CharacterPairsTableWidget_end);
    minWidth = computeMinimumColumnWidth(gc, LanguageConfigurationMessages.CharacterPairsTableWidget_end);
    columnLayout.setColumnData(column2, new ColumnWeightData(2, minWidth, true));
}

From source file:org.eclipse.tm4e.languageconfiguration.internal.widgets.OnEnterRuleTableWidget.java

License:Open Source License

public OnEnterRuleTableWidget(Table table) {
    super(table);
    setContentProvider(new OnEnterRuleContentProvider());
    setLabelProvider(new OnEnterRuleLabelProvider());

    GC gc = new GC(table.getShell());
    gc.setFont(JFaceResources.getDialogFont());
    TableColumnLayout columnLayout = new TableColumnLayout();

    TableColumn column1 = new TableColumn(table, SWT.NONE);
    column1.setText(LanguageConfigurationMessages.OnEnterRuleTableWidget_beforeText);
    int minWidth = computeMinimumColumnWidth(gc,
            LanguageConfigurationMessages.OnEnterRuleTableWidget_beforeText);
    columnLayout.setColumnData(column1, new ColumnWeightData(2, minWidth, true));

    TableColumn column2 = new TableColumn(table, SWT.NONE);
    column2.setText(LanguageConfigurationMessages.OnEnterRuleTableWidget_afterText);
    minWidth = computeMinimumColumnWidth(gc, LanguageConfigurationMessages.OnEnterRuleTableWidget_afterText);
    columnLayout.setColumnData(column2, new ColumnWeightData(2, minWidth, true));

    TableColumn column3 = new TableColumn(table, SWT.NONE);
    column3.setText(LanguageConfigurationMessages.OnEnterRuleTableWidget_indentAction);
    minWidth = computeMinimumColumnWidth(gc, LanguageConfigurationMessages.OnEnterRuleTableWidget_indentAction);
    columnLayout.setColumnData(column3, new ColumnWeightData(1, minWidth, true));

    TableColumn column4 = new TableColumn(table, SWT.NONE);
    column4.setText(LanguageConfigurationMessages.OnEnterRuleTableWidget_appendText);
    minWidth = computeMinimumColumnWidth(gc, LanguageConfigurationMessages.OnEnterRuleTableWidget_appendText);
    columnLayout.setColumnData(column4, new ColumnWeightData(1, minWidth, true));

    TableColumn column5 = new TableColumn(table, SWT.NONE);
    column5.setText(LanguageConfigurationMessages.OnEnterRuleTableWidget_removeText);
    minWidth = computeMinimumColumnWidth(gc, LanguageConfigurationMessages.OnEnterRuleTableWidget_removeText);
    columnLayout.setColumnData(column5, new ColumnWeightData(1, minWidth, true));
}