Search in sources :

Example 26 with ITheme

use of org.eclipse.ui.themes.ITheme in project ecf by eclipse.

the class MessageRenderer method getColor.

private Color getColor(String name) {
    if (name == null) {
        return null;
    }
    ITheme theme = PlatformUI.getWorkbench().getThemeManager().getCurrentTheme();
    Color c = theme.getColorRegistry().get(name);
    if (c == null) {
        return Display.getDefault().getSystemColor(SWT.COLOR_BLACK);
    }
    return c;
}
Also used : ITheme(org.eclipse.ui.themes.ITheme) Color(org.eclipse.swt.graphics.Color)

Example 27 with ITheme

use of org.eclipse.ui.themes.ITheme in project arduino-eclipse-plugin by Sloeber.

the class PlotterView method createPartControl.

@Override
public void createPartControl(Composite parent) {
    parent.setLayout(new GridLayout(1, false));
    IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
    ITheme currentTheme = themeManager.getCurrentTheme();
    ColorRegistry colorRegistry = currentTheme.getColorRegistry();
    this.myPlotter = new // $NON-NLS-1$
    MyPlotter(// $NON-NLS-1$
    6, // $NON-NLS-1$
    parent, // $NON-NLS-1$
    SWT.NONE, // $NON-NLS-1$
    colorRegistry.get("io.sloeber.plotter.color.background"), // $NON-NLS-1$
    colorRegistry.get("io.sloeber.plotter.color.foreground"), // $NON-NLS-1$
    colorRegistry.get("io.sloeber.plotter.color.grid"));
    GridData theGriddata = new GridData(SWT.FILL, SWT.FILL, true, true);
    theGriddata.horizontalSpan = 7;
    this.myPlotter.setLayoutData(theGriddata);
    for (int i = 0; i < this.myPlotter.getChannels(); i++) {
        // $NON-NLS-1$
        String colorID = "io.sloeber.plotter.color." + (1 + i);
        Color color = colorRegistry.get(colorID);
        this.myPlotter.setForeground(i, color);
    }
    int steadyPosition = this.myPlotter.getSize().x;
    int tailSize = this.myPlotter.getSize().x - 10;
    if (tailSize < -3) {
        tailSize = -2;
    }
    for (int i = 0; i < 6; i++) {
        this.myPlotter.setPercentage(i, false);
        this.myPlotter.setSteady(i, true, steadyPosition);
        this.myPlotter.setFade(i, false);
        this.myPlotter.setTailFade(i, 0);
        this.myPlotter.setConnect(i, false);
        this.myPlotter.setLineWidth(i, 1);
        this.myPlotter.setBaseOffset(i, 0);
        this.myPlotter.setTailSize(i, tailSize);
        this.myPlotter.SetChannelName(i, Messages.plotterViewChannel.replace(Messages.NUMBER, Integer.toString(i)));
    }
    PlotterView.this.myPlotter.setShowLabels(true);
    Listener listener = new Listener() {

        boolean inDrag = false;

        boolean inSize = false;

        int orgLowRange = 0;

        int orgHighRange = 0;

        int orgY = 0;

        double valueAtScrollPoint = 0;

        double scale = 1;

        double orgHeight;

        double scrollPointPercentage;

        @Override
        public void handleEvent(Event event) {
            switch(event.type) {
                case SWT.MouseDown:
                    if (!(this.inDrag || this.inSize)) {
                        this.orgLowRange = PlotterView.this.myPlotter.getRangeLowValue();
                        this.orgHighRange = PlotterView.this.myPlotter.getRangeHighValue();
                        this.scale = (((float) (PlotterView.this.myPlotter.getRangeHighValue() - PlotterView.this.myPlotter.getRangeLowValue())) / (float) PlotterView.this.myPlotter.getSize().y);
                        this.orgY = event.y;
                        switch(event.button) {
                            case 1:
                                this.inDrag = true;
                                break;
                            case 3:
                                this.orgHeight = (double) this.orgHighRange - this.orgLowRange;
                                this.scrollPointPercentage = (double) event.y / (double) PlotterView.this.myPlotter.getSize().y;
                                this.valueAtScrollPoint = this.orgHighRange - this.scrollPointPercentage * this.orgHeight;
                                this.inSize = true;
                                break;
                            default:
                                break;
                        }
                    }
                    break;
                case SWT.MouseMove:
                    if (this.inDrag) {
                        PlotterView.this.myPlotter.setRange((int) (this.orgLowRange - (this.orgY - event.y) * this.scale), (int) (this.orgHighRange - (this.orgY - event.y) * this.scale));
                        PlotterView.this.myPlotter.setnewBackgroundImage();
                    }
                    if (this.inSize) {
                        double newscale = Math.max(this.scale * (1.0 + (this.orgY - event.y) * 0.01), 1.0);
                        int newHeight = (int) (this.orgHeight / this.scale * newscale);
                        int newHighValue = (int) (this.valueAtScrollPoint + this.scrollPointPercentage * newHeight);
                        PlotterView.this.myPlotter.setRange(newHighValue - newHeight, newHighValue);
                        PlotterView.this.myPlotter.setnewBackgroundImage();
                    }
                    break;
                case SWT.MouseUp:
                    this.inDrag = false;
                    this.inSize = false;
                    break;
                case SWT.MouseDoubleClick:
                    // save the data
                    FileDialog dialog = new FileDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(), SWT.SAVE);
                    // $NON-NLS-1$
                    dialog.setFilterExtensions(new String[] { "*.csv" });
                    String fileName = dialog.open();
                    if (fileName != null && !fileName.isEmpty()) {
                        PlotterView.this.myPlotter.saveData(fileName);
                    }
                    this.inDrag = false;
                    this.inSize = false;
                    break;
                default:
                    break;
            }
        }
    };
    this.myPlotter.addListener(SWT.MouseDown, listener);
    this.myPlotter.addListener(SWT.MouseUp, listener);
    this.myPlotter.addListener(SWT.MouseMove, listener);
    this.myPlotter.addListener(SWT.MouseDoubleClick, listener);
    this.myPlotter.addControlListener(new ControlAdapter() {

        @Override
        public void controlResized(ControlEvent e) {
            int plotterWidth = PlotterView.this.myPlotter.getSize().x - 10;
            for (int i = 0; i < PlotterView.this.myPlotter.getChannels(); i++) {
                PlotterView.this.myPlotter.setSteady(i, true, plotterWidth);
                PlotterView.this.myPlotter.setTailSize(i, plotterWidth);
            }
            PlotterView.this.myPlotter.setnewBackgroundImage();
            PlotterView.this.myPlotter.redraw();
        }
    });
    // I set this as starting range
    this.myPlotter.setRange(0, 1050);
    // $NON-NLS-1$
    this.myPlotter.setStatus("Use the serial monitor to connect to a Serial port.");
    this.myPlotter.setShowLabels(false);
    this.myPlotter.setnewBackgroundImage();
    registerSerialTracker();
}
Also used : ITheme(org.eclipse.ui.themes.ITheme) Listener(org.eclipse.swt.widgets.Listener) ServiceListener(org.osgi.framework.ServiceListener) PlotterListener(io.sloeber.ui.monitor.internal.PlotterListener) ControlAdapter(org.eclipse.swt.events.ControlAdapter) Color(org.eclipse.swt.graphics.Color) IThemeManager(org.eclipse.ui.themes.IThemeManager) GridLayout(org.eclipse.swt.layout.GridLayout) ColorRegistry(org.eclipse.jface.resource.ColorRegistry) GridData(org.eclipse.swt.layout.GridData) ServiceEvent(org.osgi.framework.ServiceEvent) Event(org.eclipse.swt.widgets.Event) ControlEvent(org.eclipse.swt.events.ControlEvent) ControlEvent(org.eclipse.swt.events.ControlEvent) FileDialog(org.eclipse.swt.widgets.FileDialog)

Aggregations

ITheme (org.eclipse.ui.themes.ITheme)27 Font (org.eclipse.swt.graphics.Font)12 Color (org.eclipse.swt.graphics.Color)8 IThemeManager (org.eclipse.ui.themes.IThemeManager)4 ColorRegistry (org.eclipse.jface.resource.ColorRegistry)3 GridData (org.eclipse.swt.layout.GridData)2 GridLayout (org.eclipse.swt.layout.GridLayout)2 IMultiController (org.jkiss.dbeaver.ui.data.IMultiController)2 Serial (io.sloeber.core.api.Serial)1 PlotterListener (io.sloeber.ui.monitor.internal.PlotterListener)1 SerialListener (io.sloeber.ui.monitor.internal.SerialListener)1 File (java.io.File)1 LinkedHashMap (java.util.LinkedHashMap)1 Map (java.util.Map)1 ICConfigurationDescription (org.eclipse.cdt.core.settings.model.ICConfigurationDescription)1 IProject (org.eclipse.core.resources.IProject)1 IPath (org.eclipse.core.runtime.IPath)1 FontRegistry (org.eclipse.jface.resource.FontRegistry)1 ArrayContentProvider (org.eclipse.jface.viewers.ArrayContentProvider)1 ComboViewer (org.eclipse.jface.viewers.ComboViewer)1