Example usage for org.eclipse.jface.dialogs Dialog convertHorizontalDLUsToPixels

List of usage examples for org.eclipse.jface.dialogs Dialog convertHorizontalDLUsToPixels

Introduction

In this page you can find the example usage for org.eclipse.jface.dialogs Dialog convertHorizontalDLUsToPixels.

Prototype

public static int convertHorizontalDLUsToPixels(FontMetrics fontMetrics, int dlus) 

Source Link

Document

Returns the number of pixels corresponding to the given number of horizontal dialog units.

Usage

From source file:org.eclipse.ui.internal.activities.ws.ActivityEnabler.java

License:Open Source License

private GridLayout createGridLayoutWithoutMargins(int nColumns, FontMetrics fontMetrics) {
    GridLayout layout = new GridLayout(nColumns, false);
    layout.marginHeight = 0;//from www. ja  va 2s.c o m
    layout.marginWidth = 0;
    layout.horizontalSpacing = Dialog.convertHorizontalDLUsToPixels(fontMetrics,
            IDialogConstants.HORIZONTAL_SPACING);
    layout.verticalSpacing = Dialog.convertVerticalDLUsToPixels(fontMetrics, IDialogConstants.VERTICAL_SPACING);
    return layout;
}

From source file:org.eclipse.ui.internal.activities.ws.ActivityEnabler.java

License:Open Source License

private GridData setButtonLayoutData(Button button, FontMetrics fontMetrics) {
    GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
    int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.BUTTON_WIDTH);
    Point minSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
    data.widthHint = Math.max(widthHint, minSize.x);
    button.setLayoutData(data);//from   ww  w. j av a2  s .co m
    return data;
}

From source file:org.eclipse.ui.internal.ide.dialogs.LinkedResourceEditor.java

License:Open Source License

/**
 * @param parent//from   w  ww.  j a v a 2  s.c o m
 * @param text
 * @return the new button
 */
private Button createButton(Composite parent, String text) {
    Button button = new Button(parent, SWT.PUSH);
    button.setText(text);
    button.setFont(parent.getFont());
    GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
    int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.BUTTON_WIDTH);
    data.widthHint = Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
    button.setLayoutData(data);
    return button;
}

From source file:org.eclipse.ui.internal.ide.dialogs.ResourceFilterGroup.java

License:Open Source License

private static int getButtonWidthHint(Button button) {
    button.setFont(JFaceResources.getDialogFont());
    FontMetrics fontMetrics;/*from  w  ww  .ja  va 2 s . c om*/
    GC gc = new GC(button);
    try {
        gc.setFont(button.getFont());
        fontMetrics = gc.getFontMetrics();
    } finally {
        gc.dispose();
    }
    int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.BUTTON_WIDTH);
    return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
}

From source file:org.eclipse.wst.common.frameworks.internal.ui.NewProjectGroup.java

License:Open Source License

private void createUserSpecifiedProjectLocationGroup(Composite projectGroup) {
    Font font = projectGroup.getFont();
    // location label
    final Label locationLabel = new Label(projectGroup, SWT.NONE);
    locationLabel.setFont(font);//from   www  .  jav a2 s.c o m
    locationLabel.setText(InternalCommonWorkbenchMessages.WizardNewProjectCreationPage_locationLabel);

    // project location entry field
    locationPathField = new Text(projectGroup, SWT.BORDER);
    GridData data = new GridData(GridData.FILL_HORIZONTAL);
    data.widthHint = SIZING_TEXT_FIELD_WIDTH;
    locationPathField.setLayoutData(data);
    locationPathField.setFont(font);
    BidiUtils.applyBidiProcessing(locationPathField, StructuredTextTypeHandlerFactory.FILE);

    // browse button
    browseButton = new Button(projectGroup, SWT.PUSH);
    GridDataFactory.defaultsFor(browseButton).applyTo(browseButton);
    browseButton.setFont(font);
    browseButton.setText(defBrowseButtonLabel);
    GC gc = new GC(projectGroup);
    gc.setFont(projectGroup.getFont());
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();
    int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.BUTTON_WIDTH);
    Object layoutData = browseButton.getLayoutData();
    //This if statement fixes the truncated value of the browse button text
    if (layoutData instanceof GridData) {
        GridData dataForBrowseButton = (GridData) layoutData;
        Point minButtonSize = browseButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);

        dataForBrowseButton.widthHint = Math.max(widthHint, minButtonSize.x);
        dataForBrowseButton.heightHint = Math.max(dataForBrowseButton.heightHint, minButtonSize.y);

        browseButton.setLayoutData(dataForBrowseButton);
    }
    browseButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent event) {
            handleLocationBrowseButtonPressed();
        }
    });

    final IDataModel localModel = model;

    class LocationListener implements ModifyListener, IDataModelListener {
        private boolean typing = false;

        public void modifyText(ModifyEvent e) {
            if (!localModel.getBooleanProperty(USE_DEFAULT_LOCATION)) {
                try {
                    typing = true;
                    localModel.setProperty(USER_DEFINED_LOCATION, locationPathField.getText());
                } finally {
                    typing = false;
                }
            }
        }

        public void propertyChanged(DataModelEvent event) {
            boolean useDefault = localModel.getBooleanProperty(USE_DEFAULT_LOCATION);
            if (USE_DEFAULT_LOCATION.equals(event.getPropertyName())) {
                locationLabel.setEnabled(!useDefault);
                locationPathField.setEnabled(!useDefault);
                browseButton.setEnabled(!useDefault);
                if (useDefault) {
                    locationPathField.setText(localModel.getStringProperty(DEFAULT_LOCATION));
                } else {
                    locationPathField.setText(localModel.getStringProperty(USER_DEFINED_LOCATION));
                }
            } else if (!typing) {
                if ((useDefault && DEFAULT_LOCATION.equals(event.getPropertyName()))
                        || (!useDefault && USER_DEFINED_LOCATION.equals(event.getPropertyName()))) {
                    locationPathField.setText((String) event.getProperty());
                }
            }
        }
    }

    LocationListener listener = new LocationListener();

    listener.propertyChanged(new DataModelEvent(model, USE_DEFAULT_LOCATION, IDataModel.VALUE_CHG));

    locationPathField.addModifyListener(listener);
    model.addListener(listener);
}

From source file:org.eclipsetrader.ui.internal.ats.ReportViewPart.java

License:Open Source License

private Control createSummaryPage(Composite parent) {
    SashForm content = new SashForm(parent, SWT.VERTICAL | SWT.NO_FOCUS);

    GC gc = new GC(content);
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();/*from  ww  w.  j  ava2s . c  o  m*/

    Composite composite = new Composite(content, SWT.NONE);
    composite.setLayout(new GridLayout(1, false));

    Label label = new Label(composite, SWT.NONE);
    label.setText(Messages.ReportViewPart_Performance);

    equityChartViewer = new BaseChartViewer(composite, SWT.BORDER);
    equityChartViewer.setFillAvailableSpace(true);
    equityChartViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    composite = new Composite(content, SWT.NONE);
    composite.setLayout(new GridLayout(1, false));

    label = new Label(composite, SWT.NONE);
    label.setText(Messages.ReportViewPart_Trades);

    tradesViewer = new TableViewer(composite, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
    tradesViewer.getTable().setHeaderVisible(true);
    tradesViewer.getTable().setLinesVisible(false);
    tradesViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    content.setWeights(new int[] { 75, 25 });

    final DateFormat dateFormat = Util.getDateFormat();
    final NumberFormat numberFormat = NumberFormat.getInstance();
    numberFormat.setGroupingUsed(true);
    numberFormat.setMinimumFractionDigits(2);
    numberFormat.setMaximumFractionDigits(2);
    final NumberFormat priceNumberFormat = NumberFormat.getInstance();
    priceNumberFormat.setGroupingUsed(false);
    priceNumberFormat.setMinimumFractionDigits(1);
    priceNumberFormat.setMaximumFractionDigits(4);

    TableViewerColumn vewerColumn = new TableViewerColumn(tradesViewer, SWT.NONE);
    vewerColumn.getColumn().setText(Messages.ReportViewPart_DateTime);
    vewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 60));
    vewerColumn.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            ITransaction transaction = (ITransaction) cell.getElement();
            cell.setText(dateFormat.format(transaction.getOrder().getDate()));
        }
    });

    vewerColumn = new TableViewerColumn(tradesViewer, SWT.NONE);
    vewerColumn.getColumn().setText(Messages.ReportViewPart_Instrument);
    vewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 150));
    vewerColumn.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            IOrder order = ((ITransaction) cell.getElement()).getOrder();
            if (order != null) {
                cell.setText(order.getSecurity().getName());
            }
        }
    });

    vewerColumn = new TableViewerColumn(tradesViewer, SWT.NONE);
    vewerColumn.getColumn().setText(Messages.ReportViewPart_Side);
    vewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 50));
    vewerColumn.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            IOrder order = ((ITransaction) cell.getElement()).getOrder();
            if (order != null) {
                cell.setText(order.getSide().toString());
            }
        }
    });

    vewerColumn = new TableViewerColumn(tradesViewer, SWT.RIGHT);
    vewerColumn.getColumn().setText(Messages.ReportViewPart_Qty);
    vewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 60));
    vewerColumn.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            ITransaction transaction = (ITransaction) cell.getElement();
            if (transaction instanceof IStockTransaction) {
                cell.setText(String.valueOf(((IStockTransaction) transaction).getFilledQuantity()));
            }
        }
    });

    vewerColumn = new TableViewerColumn(tradesViewer, SWT.RIGHT);
    vewerColumn.getColumn().setText(Messages.ReportViewPart_AvgPrice);
    vewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 60));
    vewerColumn.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            ITransaction transaction = (ITransaction) cell.getElement();
            if (transaction instanceof IStockTransaction) {
                cell.setText(priceNumberFormat.format(((IStockTransaction) transaction).getAveragePrice()));
            }
        }
    });

    vewerColumn = new TableViewerColumn(tradesViewer, SWT.RIGHT);
    vewerColumn.getColumn().setText(Messages.ReportViewPart_Amount);
    vewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 60));
    vewerColumn.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            ITransaction transaction = (ITransaction) cell.getElement();
            IOrder order = transaction.getOrder();
            double amount = transaction.getAmount().getAmount();
            if (order != null) {
                cell.setText(numberFormat.format(order.getSide() == IOrderSide.Buy ? -amount : amount));
            } else {
                cell.setText(numberFormat.format(amount));
            }
        }
    });

    vewerColumn = new TableViewerColumn(tradesViewer, SWT.NONE);
    vewerColumn.getColumn().setText(Messages.ReportViewPart_Message);
    vewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 100));
    vewerColumn.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            IOrder order = ((ITransaction) cell.getElement()).getOrder();
            if (order != null && order.getReference() != null) {
                cell.setText(order.getReference());
            }
        }
    });

    tradesViewer.setContentProvider(new ArrayContentProvider());

    return content;
}

From source file:org.eclipsetrader.ui.internal.charts.views.HistoryDataDetailEditor.java

License:Open Source License

void createViewer(Composite parent) {
    Tree tree = new Tree(parent, SWT.FULL_SELECTION | SWT.MULTI);
    tree.setHeaderVisible(true);//from  ww w.  jav  a  2s  .  c o m
    tree.setLinesVisible(true);

    viewer = new TreeViewer(tree);

    IObservableFactory observableFactory = new IObservableFactory() {

        @Override
        public IObservable createObservable(Object target) {
            if (target instanceof HistoryDataDetailEditorModel) {
                return Observables
                        .unmodifiableObservableList(((HistoryDataDetailEditorModel) target).getList());
            }
            if (target instanceof HistoryDataEditorModel) {
                return Observables.unmodifiableObservableList(((HistoryDataEditorModel) target).getList());
            }
            return null;
        }
    };

    TreeStructureAdvisor treeStructureAdvisor = new TreeStructureAdvisor() {

        @Override
        public Boolean hasChildren(Object element) {
            if (element instanceof HistoryDataEditorModel) {
                return true;
            }
            return false;
        }
    };

    ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(observableFactory,
            treeStructureAdvisor);
    viewer.setContentProvider(contentProvider);

    GC gc = new GC(parent);
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();

    TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Time);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.timeValue(), BeanProperties.value(HistoryDataElement.PROP_DATE)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Open);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_OPEN)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_High);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_HIGH)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Low);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_LOW)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Close);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_CLOSE)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Volume);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.longValue(), BeanProperties.value(HistoryDataElement.PROP_VOLUME)));

    if (Platform.WS_GTK.equals(Platform.getWS())) {
        viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
        viewerColumn.getColumn().setWidth(1);
    }

    final String[] properties = new String[] { HistoryDataElement.PROP_DATE, HistoryDataElement.PROP_OPEN,
            HistoryDataElement.PROP_HIGH, HistoryDataElement.PROP_LOW, HistoryDataElement.PROP_CLOSE,
            HistoryDataElement.PROP_VOLUME, "" //$NON-NLS-1$
    };

    DataViewerLabelProvider labelProvider = new DataViewerLabelProvider(
            BeansObservables.observeMaps(contentProvider.getKnownElements(), properties));
    labelProvider.setDateFormat(Util.getTimeFormat());
    viewer.setLabelProvider(labelProvider);

    viewer.setSorter(new ViewerSorter() {

        @Override
        public int compare(Viewer viewer, Object o1, Object o2) {
            if ((o1 instanceof HistoryDataEditorModel) && (o2 instanceof HistoryDataEditorModel)) {
                TimeSpan ts1 = ((HistoryDataEditorModel) o1).getBarSize();
                TimeSpan ts2 = ((HistoryDataEditorModel) o2).getBarSize();
                if (ts1.higherThan(ts2)) {
                    return 1;
                }
                if (ts2.higherThan(ts1)) {
                    return -1;
                }
                return 0;
            } else if ((o1 instanceof HistoryDataElement) && (o2 instanceof HistoryDataElement)) {
                HistoryDataElement e1 = (HistoryDataElement) o1;
                HistoryDataElement e2 = (HistoryDataElement) o2;
                if (e1.getDate() != null && e2.getDate() != null) {
                    return e1.getDate().compareTo(e2.getDate());
                }
                if (e1.getDate() != null && e2.getDate() == null) {
                    return -1;
                }
                if (e1.getDate() == null && e2.getDate() != null) {
                    return 1;
                }
            }
            return 0;
        }
    });

    CellNavigationStrategy naviStrat = new CellNavigationStrategy() {

        @Override
        public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event) {
            ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event);
            if (cell != null) {
                if (cell.getColumnIndex() == properties.length - 1) {
                    return null;
                }
                Tree tree = ((TreeViewer) viewer).getTree();
                tree.showColumn(tree.getColumn(cell.getColumnIndex()));
            }
            return cell;
        }
    };

    TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(viewer,
            new FocusCellOwnerDrawHighlighter(viewer), naviStrat);

    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) {

        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;

        }
    };
    TreeViewerEditor.create(viewer, focusCellManager, activationStrategy,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    tree.addTraverseListener(new TraverseListener() {

        @Override
        public void keyTraversed(TraverseEvent e) {
            if (e.detail == SWT.TRAVERSE_RETURN || e.detail == SWT.TRAVERSE_ESCAPE) {
                e.doit = false;
            }
        }
    });
    tree.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent e) {
            if (viewer.isCellEditorActive()) {
                return;
            }
            if (e.keyCode == SWT.INSERT) {
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();

                HistoryDataEditorModel parent = null;

                int index = 0;
                if (!selection.isEmpty()) {
                    parent = model.getParent(selection.getFirstElement());
                    if (parent == null) {
                        return;
                    }
                    index = parent.getList().indexOf(selection.getFirstElement());
                    if (index == -1) {
                        index = parent.getList().size();
                    }
                }

                final HistoryDataElement element = new HistoryDataElement();
                parent.getList().add(index, element);

                e.doit = false;

                Display.getDefault().asyncExec(new Runnable() {

                    @Override
                    public void run() {
                        if (!viewer.getControl().isDisposed()) {
                            viewer.editElement(element, 0);
                        }
                    }
                });
            } else if (e.character == SWT.DEL) {
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
                for (Object element : selection.toList()) {
                    HistoryDataEditorModel parent = model.getParent(selection.getFirstElement());
                    if (parent != null) {
                        if (parent.getList().remove(element)) {
                            changeSupport.firePropertyChange(PROP_DIRTY, dirty, dirty = true);
                        }
                    }
                }
            }
        }
    });

    viewer.setInput(model);
}

From source file:org.eclipsetrader.ui.internal.charts.views.HistoryDataEditor.java

License:Open Source License

void createViewer(Composite parent) {
    Table table = new Table(parent, SWT.FULL_SELECTION | SWT.MULTI);
    table.setHeaderVisible(true);//www  . j a  v  a 2  s. com
    table.setLinesVisible(true);

    viewer = new TableViewer(table);

    ObservableListContentProvider contentProvider = new ObservableListContentProvider();
    viewer.setContentProvider(contentProvider);

    GC gc = new GC(parent);
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();

    TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE);
    viewerColumn.getColumn().setText(Messages.HistoryDataEditor_Date);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table),
            CellEditorValueProperty.dateValue(), BeanProperties.value(HistoryDataElement.PROP_DATE)));

    viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataEditor_Open);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_OPEN)));

    viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataEditor_High);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_HIGH)));

    viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataEditor_Low);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_LOW)));

    viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataEditor_Close);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_CLOSE)));

    viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataEditor_Volume);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(table),
            CellEditorValueProperty.longValue(), BeanProperties.value(HistoryDataElement.PROP_VOLUME)));

    if (Platform.WS_GTK.equals(Platform.getWS())) {
        viewerColumn = new TableViewerColumn(viewer, SWT.RIGHT);
        viewerColumn.getColumn().setWidth(1);
    }

    final String[] properties = new String[] { HistoryDataElement.PROP_DATE, HistoryDataElement.PROP_OPEN,
            HistoryDataElement.PROP_HIGH, HistoryDataElement.PROP_LOW, HistoryDataElement.PROP_CLOSE,
            HistoryDataElement.PROP_VOLUME, "" //$NON-NLS-1$
    };

    DataViewerLabelProvider labelProvider = new DataViewerLabelProvider(
            BeansObservables.observeMaps(contentProvider.getKnownElements(), properties));
    labelProvider.setDateFormat(Util.getDateFormat());
    viewer.setLabelProvider(labelProvider);

    viewer.setSorter(new ViewerSorter() {

        @Override
        public int compare(Viewer viewer, Object o1, Object o2) {
            HistoryDataElement e1 = (HistoryDataElement) o1;
            HistoryDataElement e2 = (HistoryDataElement) o2;
            if (e1.getDate() != null && e2.getDate() != null) {
                return e1.getDate().compareTo(e2.getDate());
            }
            if (e1.getDate() != null && e2.getDate() == null) {
                return -1;
            }
            if (e1.getDate() == null && e2.getDate() != null) {
                return 1;
            }
            return 0;
        }
    });

    CellNavigationStrategy naviStrat = new CellNavigationStrategy() {

        @Override
        public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event) {
            ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event);
            if (cell != null) {
                if (cell.getColumnIndex() == properties.length - 1) {
                    return null;
                }
                Table table = ((TableViewer) viewer).getTable();
                table.showColumn(table.getColumn(cell.getColumnIndex()));
            }
            return cell;
        }
    };

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer,
            new FocusCellOwnerDrawHighlighter(viewer), naviStrat);

    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) {

        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;

        }
    };
    TableViewerEditor.create(viewer, focusCellManager, activationStrategy,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    table.addTraverseListener(new TraverseListener() {

        @Override
        public void keyTraversed(TraverseEvent e) {
            if (e.detail == SWT.TRAVERSE_RETURN || e.detail == SWT.TRAVERSE_ESCAPE) {
                e.doit = false;
            }
        }
    });
    table.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent e) {
            if (viewer.isCellEditorActive()) {
                return;
            }
            if (e.keyCode == SWT.INSERT) {
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();

                int index = 0;
                if (!selection.isEmpty()) {
                    index = model.getList().indexOf(selection.getFirstElement());
                    if (index == -1) {
                        index = model.getList().size();
                    }
                }

                final HistoryDataElement element = new HistoryDataElement();
                model.getList().add(index, element);

                e.doit = false;

                Display.getDefault().asyncExec(new Runnable() {

                    @Override
                    public void run() {
                        if (!viewer.getControl().isDisposed()) {
                            viewer.editElement(element, 0);
                        }
                    }
                });
            } else if (e.character == SWT.DEL) {
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
                if (model.getList().removeAll(selection.toList())) {
                    changeSupport.firePropertyChange(PROP_DIRTY, dirty, dirty = true);
                }
            }
        }
    });

    viewer.setInput(model.getList());
}

From source file:org.eclipsetrader.ui.internal.editors.BaseJavaScriptEditor.java

License:Open Source License

private void createStatusBar(Composite parent) {
    Composite contents = new Composite(parent, SWT.NONE);
    contents.setLayout(new GridLayout(5, false));
    contents.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    GC gc = new GC(parent);
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();//w  w  w.  j  a  v a2  s  .c  o  m

    int heightHint = Dialog.convertVerticalDLUsToPixels(fontMetrics, 12);

    Label label = new Label(contents, SWT.NONE);
    label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    label = new Label(contents, SWT.SEPARATOR | SWT.VERTICAL);
    label.setLayoutData(new GridData(SWT.DEFAULT, heightHint));

    cursorLocation = new Label(contents, SWT.NONE);
    cursorLocation
            .setLayoutData(new GridData(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 60), SWT.DEFAULT));
    cursorLocation.setAlignment(SWT.CENTER);

    label = new Label(contents, SWT.SEPARATOR | SWT.VERTICAL);
    label.setLayoutData(new GridData(SWT.DEFAULT, heightHint));

    label = new Label(contents, SWT.NONE);
    label.setLayoutData(new GridData(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 16), SWT.DEFAULT));
}

From source file:org.fusesource.ide.foundation.ui.form.FormSupport.java

License:Open Source License

protected int convertHorizontalDLUsToPixels(int dlus) {
    // test for failure to initialize for backward compatibility
    if (fontMetrics == null) {
        return 0;
    }//from w  w  w. j  a va2  s .co  m
    return Dialog.convertHorizontalDLUsToPixels(fontMetrics, dlus);
}