Example usage for org.eclipse.jface.viewers ViewerCell getElement

List of usage examples for org.eclipse.jface.viewers ViewerCell getElement

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ViewerCell getElement.

Prototype

public Object getElement() 

Source Link

Document

Get the element this row represents.

Usage

From source file:net.sf.jmoney.views.feedback.FeedbackView.java

License:Open Source License

private Control createTable(Composite parent) {
    viewer = new TreeViewer(parent,
            /*SWT.MULTI |*/ SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION);
    viewer.setContentProvider(new StatusContentProvider());

    //      viewer.setSorter(sorter);
    viewer.addFilter(filter);//from  w w w  . j av  a 2s. c om

    Tree tree = viewer.getTree();

    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    TreeViewerColumn statusColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    statusColumn.getColumn().setText("Status");
    statusColumn.getColumn().setWidth(100);

    statusColumn.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            IStatus statusElement = (IStatus) cell.getElement();
            switch (statusElement.getSeverity()) {
            case IStatus.CANCEL:
                cell.setImage(JMoneyPlugin.createImage("status_canceled.gif"));
                break;
            case IStatus.ERROR:
                cell.setImage(JMoneyPlugin.createImage("status_error.gif"));
                break;
            case IStatus.WARNING:
                cell.setImage(JMoneyPlugin.createImage("status_warning.gif"));
                break;
            case IStatus.INFO:
                cell.setImage(JMoneyPlugin.createImage("status_info.gif"));
                break;
            case IStatus.OK:
                cell.setImage(JMoneyPlugin.createImage("status_ok.gif"));
                break;
            }
        }
    });

    TreeViewerColumn descriptionColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    descriptionColumn.getColumn().setText("Description");
    descriptionColumn.getColumn().setWidth(300);

    descriptionColumn.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            IStatus statusElement = (IStatus) cell.getElement();
            cell.setText(statusElement.getMessage());
        }
    });

    // Create the pop-up menu
    MenuManager menuMgr = new MenuManager();
    menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
    getSite().registerContextMenu(menuMgr, viewer);

    Control control = viewer.getControl();
    Menu menu = menuMgr.createContextMenu(control);
    control.setMenu(menu);

    return control;
}

From source file:net.sf.logsaw.ui.editors.LogViewEditor.java

License:Open Source License

@Override
public LogEntry getSelectedLogEntry() {
    ViewerCell cell = focusCellManager.getFocusCell();
    if ((cell != null) && (cell.getColumnIndex() > 0)) {
        return (LogEntry) cell.getElement();
    }//from   ww  w .  ja  va 2s .c om
    return null;
}

From source file:net.sf.smbt.ui.ableton.views.AbletonLiveView.java

License:LGPL

private void createDetailsPanel(Composite container) {
    container.setLayout(GridLayoutFactory.fillDefaults().create());
    container.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    detailsPanel = GUIToolkit.INSTANCE.createComposite(container, SWT.DOUBLE_BUFFERED);
    detailsPanel.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());
    detailsPanel.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    sash = new SashForm(detailsPanel, SWT.BORDER | SWT.VERTICAL);
    sash.setLayout(GridLayoutFactory.fillDefaults().create());
    sash.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    sash.setBackground(GUIToolkit.FG);/*  ww w.j  ava  2s  .  co m*/

    Composite topPanel = GUIToolkit.INSTANCE.createComposite(detailsPanel, SWT.DOUBLE_BUFFERED);
    topPanel.setLayout(GridLayoutFactory.fillDefaults().equalWidth(false).create());
    topPanel.setLayoutData(GridDataFactory.fillDefaults().grab(false, false).create());

    Composite timeDetails = GUIToolkit.INSTANCE.createComposite(topPanel, SWT.DOUBLE_BUFFERED);
    timeDetails.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());
    timeDetails.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).grab(true, false).create());

    // Tempo (BPM) 
    /*
    Label tempoLabel = GUIToolkit.INSTANCE.createLabel(timeDetails, "Tempo: ");
    tempoLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).grab(true, false).create());
            
    tempoValLabel = GUIToolkit.INSTANCE.createLabel(timeDetails, "-- Bpm");
    tempoValLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).grab(true, false).create());
            
    timeSongLCD = new SevenSegmentsDisplay(timeDetails, 5, SWT.NONE);
    timeSongLCD.setLayout(GridLayoutFactory.fillDefaults().create());
    timeSongLCD.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).span(2, 1).hint(300, 75).grab(false, false).create());
    timeSongLCD.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_GRAY));
     */

    Composite masterButtons = GUIToolkit.INSTANCE.createComposite(topPanel, SWT.DOUBLE_BUFFERED);
    masterButtons.setLayout(GridLayoutFactory.fillDefaults().create());
    masterButtons.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).grab(true, false).create());

    final Button playStopButton = new Button(masterButtons, SWT.TOGGLE);
    playStopButton.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).hint(64, 64).minSize(64, 64).create());
    playStopButton.setForeground(ColorsUtil.BG);
    playStopButton.setImage(playImageBig);
    playStopButton.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            if (playStopButton.getSelection()) {
                playStopButton.setImage(stopImageBig);
                liveController.handleMasterTrackState(MASTER_CTRL.PLAY);
            } else {
                playStopButton.setImage(playImageBig);
                liveController.handleMasterTrackState(MASTER_CTRL.STOP);
            }
        }

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

    /*
    Composite dbMeterPanel = GUIToolkit.INSTANCE.createComposite(topPanel, SWT.DOUBLE_BUFFERED);
    dbMeterPanel.setLayout(GridLayoutFactory.fillDefaults().create());
    dbMeterPanel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).grab(true, true).create());
            
            
    dbMeter = new UbiDbMeter(dbMeterPanel, SWT.HORIZONTAL);
    dbMeter.setMax(100f);
    dbMeter.setLayoutData(GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).hint(145, 145).grab(false, false).create());
    */

    //
    // Volume, Pan, Meter (R + L)
    //

    Composite upPanel = GUIToolkit.INSTANCE.createComposite(topPanel, SWT.SHADOW_ETCHED_IN);
    upPanel.setLayout(GridLayoutFactory.fillDefaults().equalWidth(false).create());
    upPanel.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    Composite vPanel = GUIToolkit.INSTANCE.createComposite(upPanel, SWT.SHADOW_ETCHED_IN);
    vPanel.setLayout(GridLayoutFactory.fillDefaults().equalWidth(false).create());
    vPanel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).grab(true, false).create());

    masterVolume = new UbiKnob(vPanel, SWT.HORIZONTAL);
    masterVolume.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).hint(48, 48).grab(false, false).create());
    masterVolume.setMax(100f);
    masterVolume.setSelection(50);
    masterVolume.addSelectionListener(new UbiSelectionListener() {
        @Override
        public void handle() {
            float value = new Float(masterVolume.getSelection()) / 100f;
            if (value != liveController.getLiveApp().getMasterTrack().getVolume()) {
                liveController.getLiveApp().getMasterTrack().setVolume(value);
            }
        }
    });
    masterVolume.addMenuAction(new LinkOscAbletonCommandAction(masterVolume,
            ABLETON_OSC_MAPPING.MASTER_VOLUME.getLiteral(), 100f));

    Label masterVolumeLabel = GUIToolkit.INSTANCE.createLabel(vPanel, "Vol");
    masterVolumeLabel.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).grab(false, false).create());

    Composite pPanel = GUIToolkit.INSTANCE.createComposite(upPanel, SWT.DOUBLE_BUFFERED);
    pPanel.setLayout(GridLayoutFactory.fillDefaults().equalWidth(false).create());
    pPanel.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).grab(true, false).create());

    masterPan = new UbiKnob(pPanel, SWT.HORIZONTAL);
    masterPan.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).hint(48, 48).grab(false, false).create());
    masterPan.setMax(100f);
    masterPan.setSelection(50);
    masterPan.addSelectionListener(new UbiSelectionListener() {
        @Override
        public void handle() {
            float value = new Float(masterPan.getSelection() - 50) / 50f;
            if (value != liveController.getLiveApp().getMasterTrack().getPan()) {
                liveController.getLiveApp().getMasterTrack().setPan(value);
            }
        }
    });
    masterPan.addMenuAction(
            new LinkOscAbletonCommandAction(masterPan, ABLETON_OSC_MAPPING.MASTER_VOLUME.getLiteral(), 100f));

    Label masterPanLabel = GUIToolkit.INSTANCE.createLabel(pPanel, "Pan");
    masterPanLabel.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).grab(false, false).create());

    //
    // Vu Meters
    //

    Composite vuMetersPanel = GUIToolkit.INSTANCE.createComposite(upPanel, SWT.DOUBLE_BUFFERED);
    vuMetersPanel.setLayout(GridLayoutFactory.fillDefaults().equalWidth(false).numColumns(2).create());
    vuMetersPanel.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create());

    //leftMasterVu.setLayoutData(GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).hint(250, SWT.DEFAULT).grab(true, false).create());
    /*
          Label rightMasterVuLabel = GUIToolkit.INSTANCE.createLabel(vuMetersPanel, "L/R ");
          rightMasterVuLabel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).grab(false, false).create());
       */
    masterVu = new UbiVuMeter(vuMetersPanel, SWT.VERTICAL);
    masterVu.setLevel(0);
    masterVu.setMax(100);
    masterVu.setLayout(GridLayoutFactory.fillDefaults().create());
    masterVu.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).hint(20, 250).grab(true, false).create());

    Composite tracksPanel = GUIToolkit.INSTANCE.createComposite(sash, SWT.DOUBLE_BUFFERED);
    tracksPanel.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).create());
    tracksPanel.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    subDetailsViewer = GUIToolkit.INSTANCE.createTreeViewer(tracksPanel, SWT.FULL_SELECTION);
    subDetailsViewer.getTree().setLinesVisible(true);
    subDetailsViewer.setLabelProvider(new AbletonLiveLabelProvider());

    AbletonLiveDetailsContentProvider abletonLiveDetailsContentProvider = new AbletonLiveDetailsContentProvider();

    subDetailsViewer.setContentProvider(abletonLiveDetailsContentProvider);
    subDetailsViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    subDetailsViewer.getTree().setHeaderVisible(true);
    subDetailsViewer.getTree().setLinesVisible(true);
    subDetailsViewer.setInput(liveController.getLiveApp());

    subDetailsViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            doubleClickAction2.run();
        }
    });

    /*
    subDetailsViewer.getControl().addListener (SWT.MouseDown, new Listener() {
       public void handleEvent (Event event) {
    Tree tree = (Tree) subDetailsViewer.getControl();
    Rectangle clientArea = tree.getClientArea ();
    Point pt = new Point(event.x, event.y);
    int index = 0;
    while (index < tree.getItemCount ()) {
       boolean visible = false;
       TreeItem item = ((Tree)subDetailsViewer.getControl()).getItem (index);
       for (int i=0; i < tree.getColumnCount(); i++) {
          Rectangle rect = item.getBounds (i);
          rect.width = 16;
          if (rect.contains (pt)) {
             handleToggleClip(index, i, item.getData());
          }
          if (!visible && rect.intersects (clientArea)) {
             visible = true;
          }
       }
       if (!visible) return;
       index++;
    }
       }
    });
    */

    TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(subDetailsViewer,
            new FocusCellOwnerDrawHighlighter(subDetailsViewer) {
                @Override
                public ViewerCell getFocusCell() {
                    ViewerCell cell = super.getFocusCell();
                    handleClipDetails(cell.getElement(), cell.getColumnIndex());
                    return cell;
                }
            });

    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
            subDetailsViewer) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return false;
        }
    };

    TreeViewerEditor.create(subDetailsViewer, focusCellManager, actSupport,
            ColumnViewerEditor.KEYBOARD_ACTIVATION);

    scXui = GUIToolkit.INSTANCE.createScrolledComposite(sash);
    scXui.setLayout(GridLayoutFactory.fillDefaults().create());
    scXui.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    scXui.getParent().setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));

    xuiPanel = GUIToolkit.INSTANCE.createComposite(scXui, SWT.DOUBLE_BUFFERED);
    xuiPanelLayout = GridLayoutFactory.fillDefaults().numColumns(16).equalWidth(false).margins(0, 0)
            .extendedMargins(0, 0, 0, 0).spacing(0, 0).create();
    xuiPanel.setLayout(xuiPanelLayout);
    xuiPanel.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create());

    scXui.setExpandVertical(true);
    scXui.setExpandHorizontal(true);
    scXui.setAlwaysShowScrollBars(true);
    scXui.setOrientation(SWT.VERTICAL);

    scXui.setContent(xuiPanel);
    scXui.addControlListener(new ControlAdapter() {
        public void controlResized(ControlEvent e) {
            Rectangle r = sash.getClientArea();
            scXui.setMinSize(xuiPanel.computeSize(r.width, SWT.DEFAULT));
        }
    });
    /*
    int realWidth = 0;
    for (TreeViewerColumn c : treeColumnsMap.values()) {
       realWidth += c.getColumn().getWidth();
    }
            
    ((GridData)xuiPanel.getLayoutData()).minimumWidth = realWidth;
            
    hbarScXui = new SelectionListener() {
       @Override
       public void widgetSelected(SelectionEvent e) {
    sc.getHorizontalBar().removeSelectionListener(hbarSc);
    sc.getHorizontalBar().setSelection(e.x);
    sc.getHorizontalBar().addSelectionListener(hbarSc);
       }
       @Override
       public void widgetDefaultSelected(SelectionEvent e) {
            
       }
    };
    if (scXui.getHorizontalBar() != null) {
       scXui.getHorizontalBar().addSelectionListener(
    hbarScXui
       );
    }
    */

    devicesPanel = GUIToolkit.INSTANCE.createComposite(sash, SWT.DOUBLE_BUFFERED);
    devicesPanel.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).equalWidth(false).create());
    devicesPanel.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    bottomSash = new SashForm(devicesPanel, SWT.HORIZONTAL);
    bottomSash.setLayout(GridLayoutFactory.fillDefaults().create());
    bottomSash.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    bottomSash.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));

    devicesViewer = GUIToolkit.INSTANCE.createTreeViewer(bottomSash, SWT.FULL_SELECTION);
    devicesViewer.setLabelProvider(new LabelProvider() {
        @Override
        public Image getImage(Object element) {
            if (element instanceof AbstractLiveDevice) {
                return deviceImage;
            } else if (element instanceof LiveParam) {
                return paramImage;
            }
            return deviceImage;
        }

        @Override
        public String getText(Object element) {
            if (element instanceof AbstractLiveDevice) {
                return ((AbstractLiveDevice) element).getDeviceName();
            } else if (element instanceof LiveParam) {
                LiveParam param = (LiveParam) element;
                return param.getName() + " : " + param.getValue() + " [" + param.getMin() + " .. "
                        + param.getMax() + "]";
            }
            return "???";
        }
    });

    devicesViewer.setContentProvider(new DevicesContentProvider());
    devicesViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    sc = GUIToolkit.INSTANCE.createScrolledComposite(bottomSash);
    sc.setLayout(GridLayoutFactory.fillDefaults().create());
    sc.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    sc.getParent().setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));

    deviceWidgetContainer = GUIToolkit.INSTANCE.createComposite(sc, SWT.DOUBLE_BUFFERED);
    deviceWidgetContainer.setLayout(GridLayoutFactory.fillDefaults().create());
    deviceWidgetContainer.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    deviceWidgetContainer.getParent().setBackground(GUIToolkit.BG);
    deviceWidgetContainer.addControlListener(new ControlListener() {
        @Override
        public void controlResized(ControlEvent e) {
        }

        @Override
        public void controlMoved(ControlEvent e) {
            System.out.println("moved");
        }
    });

    sc.setExpandVertical(true);
    sc.setAlwaysShowScrollBars(true);
    sc.setOrientation(SWT.VERTICAL);

    sc.setContent(deviceWidgetContainer);
    sc.addControlListener(new ControlAdapter() {
        public void controlResized(ControlEvent e) {
            Rectangle r = sc.getClientArea();
            sc.setMinSize(devicesPanel.computeSize(r.width, SWT.DEFAULT));
        }
    });

    hbarSc = new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            scXui.getHorizontalBar().removeSelectionListener(hbarScXui);
            scXui.getHorizontalBar().setSelection(e.x);
            scXui.getHorizontalBar().addSelectionListener(hbarScXui);
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {

        }
    };
    if (scXui.getHorizontalBar() != null) {
        sc.getHorizontalBar().addSelectionListener(hbarSc);
    }
    Rectangle r = sc.getClientArea();
    sc.setMinSize(devicesPanel.computeSize(r.width, SWT.DEFAULT));

    devicesViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = devicesViewer.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object obj = null;
                StructuredSelection ssel = (StructuredSelection) selection;
                if (!ssel.isEmpty()) {
                    obj = ssel.getFirstElement();
                }
                AbstractDeviceWidget w = AbletonWidgetManager.INSTANCE.getNullWidget();
                AbstractLiveDevice device = null;
                if (obj instanceof AbstractLiveDevice) {
                    device = (AbstractLiveDevice) obj;
                    w = AbletonWidgetManager.INSTANCE.getWidget(device.getDeviceName());
                }

                if (w instanceof AbstractDeviceWidget) {
                    deviceWidgetContainer.setVisible(true);
                    AbstractDeviceWidget widget = (AbstractDeviceWidget) w;
                    for (Control c : deviceWidgetContainer.getChildren()) {
                        c.setVisible(false);
                        if (!c.isDisposed()) {
                            c.dispose();
                        }
                    }
                    Control control = widget.createControl(deviceWidgetContainer, SWT.NONE);
                    if (!control.isDisposed() && control != null) {
                        control.setVisible(true);
                    }
                    if (device != null) {
                        widget.init(((LiveTrack) device.eContainer()), device);
                    }
                    deviceWidgetContainer.layout(true);
                    widget.redraw();
                } else {
                    sc.setVisible(false);
                    for (Control c : sc.getChildren()) {
                        c.setVisible(false);
                        if (!c.isDisposed()) {
                            c.dispose();
                        }
                    }
                }
                sc.redraw();
            } else {
                deviceWidgetContainer.setVisible(false);
                for (Control c : deviceWidgetContainer.getChildren()) {
                    c.setVisible(false);
                    if (!c.isDisposed()) {
                        c.dispose();
                    }
                }
            }
        }
    });

    bottomSash.setWeights(new int[] { 1, 5 });

    UIJob refreshDetailsJob = new UbiJob("Refresh Details") {
        @Override
        public IStatus runInUIThread(IProgressMonitor monitor) {
            synchronized (liveController.getLiveApp()) {
                synchronized (liveController.getLiveApp().getTracks()) {
                    for (LiveTrack t : treeColumnsMap.keySet()) {
                        if (!liveController.getLiveApp().getTracks().contains(t)) {
                            TreeViewerColumn col = treeColumnsMap.get(t);
                            treeColumnsMap.remove(t);
                            col.getColumn().dispose();

                            XUITrack xui = xuiTrackMap.get(t);
                            xuiTrackMap.remove(t);
                            xui.dispose();
                        }
                    }
                    for (LiveTrack track : liveController.getLiveApp().getTracks()) {
                        if (!treeColumnsMap.containsKey(track)) {
                            TreeViewerColumn tc = createTableViewerColumn(track.getTrackName(), 110);
                            treeColumnsMap.put(track, tc);
                            xuiTrackMap.put(track, new XUITrack(xuiPanel, track, tc, liveController));
                        } else {
                            treeColumnsMap.get(track).getColumn().setText(track.getTrackName());
                            int w = treeColumnsMap.get(track).getColumn().getWidth();
                            Rectangle rect = xuiTrackMap.get(track).getBounds();
                            xuiTrackMap.get(track).setBounds(rect.x, rect.y, w, rect.height);
                            GridData gd = (GridData) xuiTrackMap.get(track).getLayoutData();
                            gd.horizontalIndent = 0;
                            gd.widthHint = w;
                            gd.minimumWidth = SWT.DEFAULT;
                        }
                    }
                    xuiPanelLayout.numColumns = liveController.getLiveApp().getTracks().size();
                    if (xuiPanel != null && !xuiPanel.isDisposed()) {
                        xuiPanel.layout(true);
                        if (subDetailsViewer != null && subDetailsViewer.getControl() != null
                                && !subDetailsViewer.getControl().isDisposed()) {
                            if (subDetailsViewer != null && subDetailsViewer.getContentProvider() != null) {
                                if (subDetailsViewer.getInput() != liveController.getLiveApp()) {
                                    subDetailsViewer.setInput(liveController.getLiveApp());
                                    if (deviceWidgetContainer != null && !deviceWidgetContainer.isDisposed()) {
                                        deviceWidgetContainer.layout(true);
                                    }
                                }
                                subDetailsViewer.refresh(true);
                            }
                            devicesPanel.setVisible(liveController.isMonitorDevices());
                        }
                    }
                }
            }
            schedule(1000);
            return Status.OK_STATUS;
        }
    };
    refreshDetailsJob.setSystem(true);
    refreshDetailsJob.setPriority(Job.INTERACTIVE);
    refreshDetailsJob.schedule(1000);

    if (liveController != null && liveController.getAbletonOscEngine() != null) {
        liveController.monitorDevices(true);
    }
    if (devicesPanel != null) {
        deviceWidgetContainer.setVisible(true);
        devicesPanel.setVisible(liveController.isMonitorDevices());
        devicesPanel.setSize(sash.getSize().x, 250);
        devicesPanel.layout(true);
        deviceWidgetContainer.setSize(sash.getSize().x, 250);
        deviceWidgetContainer.redraw();
        deviceWidgetContainer.layout(true);
        deviceWidgetContainer.redraw();
        devicesPanel.layout(true);
        devicesPanel.redraw();

        if (devicesViewer.getTree() != null && devicesViewer.getTree().getItemCount() > 0) {
            @SuppressWarnings({ "rawtypes", "unused" })
            List lst = (List) devicesViewer.getInput();
            devicesViewer.getTree().select(devicesViewer.getTree().getItem(0));
            subDetailsViewer.refresh(true);
        }
        devicesPanel.layout(true);
        devicesPanel.redraw();
        for (Control c : devicesPanel.getChildren()) {
            if (c instanceof Control) {
                c.redraw();
            }
        }
    }

    sash.setWeights(new int[] { 2, 2, 2 });
}

From source file:net.sf.smbt.ui.ableton.views.AbletonLiveView.java

License:LGPL

private TreeViewerColumn createTableViewerColumn(String title, int bound) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(subDetailsViewer, SWT.NONE);
    final TreeColumn column = viewerColumn.getColumn();
    column.setText(title);//www . j av a 2  s.  c o  m
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(true);
    viewerColumn.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        protected void paint(Event event, Object element) {
            if (element instanceof LiveScene) {
                TreeItem treeItem = (TreeItem) event.item;
                Object obj = treeItem.getData(viewerColumn.getColumn().getText() + "#clip");
                if (obj != null) {
                    LiveClip c = (LiveClip) obj;
                    super.paint(event, element);
                    if (((LiveScene) element).getSceneID() == lastSceneID) {
                        int width = 0;
                        int height = event.height - 4;
                        int x = event.x;
                        int y = event.y + 2;
                        float l = c.getLength();
                        float p = c.getPosition();

                        if (p > 0 && l > 0) {
                            float ratio = p / l;
                            width = Float.valueOf(ratio * (float) viewerColumn.getColumn().getWidth())
                                    .intValue();
                            event.gc.setAlpha(100);
                            event.gc.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
                            event.gc.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
                            event.gc.fillRoundRectangle(x, y, width, height, 2, 2);
                            event.gc.setAlpha(255);
                            event.gc.drawRoundRectangle(x, y, width, height, 2, 2);
                        }
                    }
                } else {
                    super.paint(event, element);
                }
            } else {
                super.paint(event, element);
            }
        }

        @Override
        public void update(ViewerCell cell) {
            super.update(cell);
            if (cell.getElement() instanceof LiveScene) {
                LiveScene scene = (LiveScene) cell.getElement();
                int idx = cell.getColumnIndex();
                if (liveController.getLiveApp().getTracks().size() > idx) {
                    LiveTrack track = liveController.getLiveApp().getTracks().get(idx);
                    for (LiveClip c : track.getClips()) {
                        if (scene.getSceneID() == c.getClipID()) {
                            cell.setText(c.getClipName());
                            //cell.getStyleRanges();
                            /*
                            switch(c.getClipState()) {
                               case PLAYING:
                               case TRIGGERED:
                                  cell.setImage(playImage);
                                  //break;
                               case STOP:
                                  cell.setImage(stopImage);
                                  break;
                               default:
                                  cell.setImage(stopImage);
                                  break;
                            };*/

                            cell.setImage(lastSceneID == scene.getSceneID() ? playImage : stopImage);

                            if (c.getColor() != null) {
                                cell.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
                                cell.setBackground(c.getColor());
                            }

                            cell.getItem().setData(track.getTrackName() + "#clip", c);
                            break;
                        } else {
                            cell.setForeground(GUIToolkit.FG);
                            cell.setBackground(GUIToolkit.BG);
                        }
                    }
                }
            }
        }
    });
    return viewerColumn;
}

From source file:net.sf.smbt.ui.audio.view.FmodexLiveView.java

License:LGPL

private void createDetailsPanel(Composite container) {
    container.setLayout(GridLayoutFactory.fillDefaults().create());
    container.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    detailsPanel = GUIToolkit.INSTANCE.createComposite(container, SWT.DOUBLE_BUFFERED);
    detailsPanel.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());
    detailsPanel.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    sash = new SashForm(detailsPanel, SWT.BORDER | SWT.VERTICAL);
    sash.setLayout(GridLayoutFactory.fillDefaults().create());
    sash.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    sash.setBackground(GUIToolkit.FG);/*from   w ww  . j  a  v a 2  s .  c  om*/

    Composite topPanel = GUIToolkit.INSTANCE.createComposite(detailsPanel, SWT.DOUBLE_BUFFERED);
    topPanel.setLayout(GridLayoutFactory.fillDefaults().equalWidth(false).create());
    topPanel.setLayoutData(GridDataFactory.fillDefaults().grab(false, false).create());

    Composite timeDetails = GUIToolkit.INSTANCE.createComposite(topPanel, SWT.DOUBLE_BUFFERED);
    timeDetails.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create());
    timeDetails.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).grab(true, false).create());

    Composite masterButtons = GUIToolkit.INSTANCE.createComposite(topPanel, SWT.DOUBLE_BUFFERED);
    masterButtons.setLayout(GridLayoutFactory.fillDefaults().create());
    masterButtons.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).grab(true, false).create());

    final Button playStopButton = new Button(masterButtons, SWT.TOGGLE);
    playStopButton.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).hint(64, 64).minSize(64, 64).create());
    playStopButton.setForeground(ColorsUtil.BG);
    playStopButton.setImage(playImageBig);
    playStopButton.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            if (playStopButton.getSelection()) {
                playStopButton.setImage(stopImageBig);
            } else {
                playStopButton.setImage(playImageBig);
            }
            for (AudioScene s : project.getScenes()) {
                for (AudioClip c : s.getClips()) {
                    if (c != null) {
                        AudioSound sound = c.getSound();
                        AudioTrack track = c.getTrack();
                        if (sound instanceof AudioSound && track instanceof AudioTrack) {
                            if (track.getChannel() instanceof AudioChannel) {
                                AudioChannel channel = (AudioChannel) track.getChannel();
                                if (channel != null && channel.getFmodex() != null) {
                                    if (AudioUtils.INSTANCE.isPlaying(channel)) {
                                        channel.getFmodex().setPaused(true);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

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

    Composite upPanel = GUIToolkit.INSTANCE.createComposite(topPanel, SWT.SHADOW_ETCHED_IN);
    upPanel.setLayout(GridLayoutFactory.fillDefaults().equalWidth(false).create());
    upPanel.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());

    Composite vPanel = GUIToolkit.INSTANCE.createComposite(upPanel, SWT.SHADOW_ETCHED_IN);
    vPanel.setLayout(GridLayoutFactory.fillDefaults().equalWidth(false).create());
    vPanel.setLayoutData(GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).grab(true, false).create());

    masterVolume = new UbiKnob(vPanel, SWT.HORIZONTAL);
    masterVolume.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).hint(48, 48).grab(false, false).create());
    masterVolume.setMax(100f);
    masterVolume.setSelection(50);
    masterVolume.addSelectionListener(new UbiSelectionListener() {
        @Override
        public void handle() {
            float value = new Float(masterVolume.getSelection()) / 100f;
            //            if (value != liveController.getLiveApp().getMasterTrack().getVolume()) {
            //               liveController.getLiveApp().getMasterTrack().setVolume(value);
            //            }
        }
    });

    Label masterVolumeLabel = GUIToolkit.INSTANCE.createLabel(vPanel, "Vol");
    masterVolumeLabel.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).grab(false, false).create());

    Composite pPanel = GUIToolkit.INSTANCE.createComposite(upPanel, SWT.DOUBLE_BUFFERED);
    pPanel.setLayout(GridLayoutFactory.fillDefaults().equalWidth(false).create());
    pPanel.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.CENTER).grab(true, false).create());

    masterPan = new UbiKnob(pPanel, SWT.HORIZONTAL);
    masterPan.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).hint(48, 48).grab(false, false).create());
    masterPan.setMax(100f);
    masterPan.setSelection(50);
    masterPan.addSelectionListener(new UbiSelectionListener() {
        @Override
        public void handle() {
            float value = new Float(masterPan.getSelection() - 50) / 50f;
            //            if (value != liveController.getLiveApp().getMasterTrack().getPan()) {
            //               liveController.getLiveApp().getMasterTrack().setPan(value);
            //            }
        }
    });
    //      masterPan.addMenuAction(
    //         new LinkOscAbletonCommandAction(
    //            masterPan, 
    //            ABLETON_OSC_MAPPING.MASTER_VOLUME.getLiteral(),
    //            100f
    //         )
    //      );

    Label masterPanLabel = GUIToolkit.INSTANCE.createLabel(pPanel, "Pan");
    masterPanLabel.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).grab(false, false).create());

    //
    // Vu Meters
    //

    Composite vuMetersPanel = GUIToolkit.INSTANCE.createComposite(upPanel, SWT.DOUBLE_BUFFERED);
    vuMetersPanel.setLayout(GridLayoutFactory.fillDefaults().equalWidth(false).numColumns(2).create());
    vuMetersPanel.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create());

    masterVu = new UbiVuMeter(vuMetersPanel, SWT.VERTICAL);
    masterVu.setLevel(0);
    masterVu.setMax(100);
    masterVu.setLayout(GridLayoutFactory.fillDefaults().create());
    masterVu.setLayoutData(
            GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.TOP).hint(20, 250).grab(true, false).create());

    Composite tracksPanel = GUIToolkit.INSTANCE.createComposite(sash, SWT.DOUBLE_BUFFERED);
    tracksPanel.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).create());
    tracksPanel.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    subDetailsViewer = GUIToolkit.INSTANCE.createTreeViewer(tracksPanel, SWT.FULL_SELECTION);
    subDetailsViewer.setLabelProvider(fmodexLabelProvider);

    FmodexContentProvider fmodexContentProvider = new FmodexContentProvider();

    subDetailsViewer.setContentProvider(fmodexContentProvider);
    subDetailsViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    subDetailsViewer.getTree().setForeground(GUIToolkit.FG);
    subDetailsViewer.getTree().setBackground(GUIToolkit.BG);
    subDetailsViewer.getTree().setHeaderVisible(true);
    subDetailsViewer.getTree().setLinesVisible(true);
    subDetailsViewer.setInput(project);

    //
    // Drag and drop support
    //

    Transfer[] dndTransferTypes = new Transfer[] { FmodexAudioFileTransfert.INSTANCE };

    subDetailsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT, dndTransferTypes,
            new FmodexAudioFileDragAdapter(subDetailsViewer));
    subDetailsViewer.addDropSupport(DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_DEFAULT, dndTransferTypes,
            new net.sf.smbt.ui.audio.dnd.FmodexAudioFileDropAdapter(subDetailsViewer));

    subDetailsViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            doubleClickAction2.run();
        }
    });

    TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(subDetailsViewer,
            new FocusCellOwnerDrawHighlighter(subDetailsViewer) {
                @Override
                public ViewerCell getFocusCell() {
                    ViewerCell cell = super.getFocusCell();
                    handleClipDetails(cell.getElement(), cell.getColumnIndex());
                    return cell;
                }
            });

    UIJob refreshDetailsJob = new UbiJob("Refresh Details") {
        @Override
        public IStatus runInUIThread(IProgressMonitor monitor) {
            synchronized (project) {
                synchronized (project.getTracks()) {
                    for (AudioTrack t : treeColumnsMap.keySet()) {
                        if (!project.getTracks().contains(t)) {
                            TreeViewerColumn col = treeColumnsMap.get(t);
                            treeColumnsMap.remove(t);
                            col.getColumn().dispose();

                            XUITrack xui = xuiTrackMap.get(t);
                            xuiTrackMap.remove(t);
                            xui.dispose();
                        }
                    }
                    int i = 1;
                    for (AudioTrack track : project.getTracks()) {
                        if (!treeColumnsMap.containsKey(track)) {
                            TreeViewerColumn tc = createTableViewerColumn("Track " + i, 110);
                            treeColumnsMap.put(track, tc);
                            xuiTrackMap.put(track, new XUITrack(xuiPanel, track, tc, project));
                        } else {
                            treeColumnsMap.get(track).getColumn().setText("Track " + i);
                            int w = treeColumnsMap.get(track).getColumn().getWidth();
                            Rectangle rect = xuiTrackMap.get(track).getBounds();
                            xuiTrackMap.get(track).setBounds(rect.x, rect.y, w, rect.height);
                            GridData gd = (GridData) xuiTrackMap.get(track).getLayoutData();
                            gd.horizontalIndent = 0;
                            gd.widthHint = w;
                            gd.minimumWidth = SWT.DEFAULT;
                        }
                        i++;
                    }
                    xuiPanelLayout.numColumns = project.getTracks().size();
                    xuiPanel.layout(true);
                    if (subDetailsViewer != null && subDetailsViewer.getContentProvider() != null) {
                        if (subDetailsViewer.getInput() != project) {
                            subDetailsViewer.setInput(project);
                            deviceWidgetContainer.layout(true);
                        }
                        subDetailsViewer.refresh(true);
                    }
                    devicesPanel.setVisible(true);
                }
            }
            schedule(1000);
            return Status.OK_STATUS;
        }
    };
    refreshDetailsJob.setSystem(true);
    refreshDetailsJob.setPriority(Job.INTERACTIVE);
    refreshDetailsJob.schedule(1000);

    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
            subDetailsViewer) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return false;
        }
    };

    TreeViewerEditor.create(subDetailsViewer, focusCellManager, actSupport,
            ColumnViewerEditor.KEYBOARD_ACTIVATION);

    scXui = GUIToolkit.INSTANCE.createScrolledComposite(sash);
    scXui.setLayout(GridLayoutFactory.fillDefaults().create());
    scXui.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    scXui.getParent().setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));

    xuiPanel = GUIToolkit.INSTANCE.createComposite(scXui, SWT.DOUBLE_BUFFERED);
    xuiPanelLayout = GridLayoutFactory.fillDefaults().numColumns(16).equalWidth(false).margins(0, 0)
            .extendedMargins(0, 0, 0, 0).spacing(0, 0).create();
    xuiPanel.setLayout(xuiPanelLayout);
    xuiPanel.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create());

    scXui.setExpandVertical(true);
    scXui.setExpandHorizontal(true);
    scXui.setAlwaysShowScrollBars(true);
    scXui.setOrientation(SWT.VERTICAL);

    scXui.setContent(xuiPanel);
    scXui.addControlListener(new ControlAdapter() {
        public void controlResized(ControlEvent e) {
            Rectangle r = sash.getClientArea();
            scXui.setMinSize(xuiPanel.computeSize(r.width, SWT.DEFAULT));
        }
    });

    devicesPanel = GUIToolkit.INSTANCE.createComposite(sash, SWT.DOUBLE_BUFFERED);
    devicesPanel.setLayout(GridLayoutFactory.fillDefaults().numColumns(1).equalWidth(false).create());
    devicesPanel.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    bottomSash = new SashForm(devicesPanel, SWT.HORIZONTAL);
    bottomSash.setLayout(GridLayoutFactory.fillDefaults().create());
    bottomSash.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    bottomSash.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));

    devicesViewer = GUIToolkit.INSTANCE.createTreeViewer(bottomSash, SWT.FULL_SELECTION);
    devicesViewer.setLabelProvider(new LabelProvider() {
        @Override
        public Image getImage(Object element) {
            return deviceImage;
        }

        @Override
        public String getText(Object element) {
            if (element instanceof Device) {
                return ((Device) element).getID();
            }
            return "???";
        }
    });

    devicesViewer.setContentProvider(new DevicesContentProvider());
    devicesViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    sc = GUIToolkit.INSTANCE.createScrolledComposite(bottomSash);
    sc.setLayout(GridLayoutFactory.fillDefaults().create());
    sc.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    sc.getParent().setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));

    deviceWidgetContainer = GUIToolkit.INSTANCE.createComposite(sc, SWT.DOUBLE_BUFFERED);
    deviceWidgetContainer.setLayout(GridLayoutFactory.fillDefaults().create());
    deviceWidgetContainer.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    deviceWidgetContainer.getParent().setBackground(GUIToolkit.BG);
    deviceWidgetContainer.addControlListener(new ControlListener() {
        @Override
        public void controlResized(ControlEvent e) {
        }

        @Override
        public void controlMoved(ControlEvent e) {
        }
    });

    sc.setExpandVertical(true);
    sc.setAlwaysShowScrollBars(true);
    sc.setOrientation(SWT.VERTICAL);

    sc.setContent(deviceWidgetContainer);
    sc.addControlListener(new ControlAdapter() {
        public void controlResized(ControlEvent e) {
            Rectangle r = sc.getClientArea();
            sc.setMinSize(devicesPanel.computeSize(r.width, SWT.DEFAULT));
        }
    });

    hbarSc = new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            scXui.getHorizontalBar().removeSelectionListener(hbarScXui);
            scXui.getHorizontalBar().setSelection(e.x);
            scXui.getHorizontalBar().addSelectionListener(hbarScXui);
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {

        }
    };
    if (scXui.getHorizontalBar() != null) {
        sc.getHorizontalBar().addSelectionListener(hbarSc);
    }
    Rectangle r = sc.getClientArea();
    sc.setMinSize(devicesPanel.computeSize(r.width, SWT.DEFAULT));

    devicesViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = devicesViewer.getSelection();
            if (selection instanceof IStructuredSelection) {
                Object obj = null;
                StructuredSelection ssel = (StructuredSelection) selection;
                if (!ssel.isEmpty()) {
                    obj = ssel.getFirstElement();
                }
                AbstractDeviceWidget w = FmodexWidgetManager.INSTANCE.getNullWidget();
                if (obj instanceof Device) {
                    device = (Device) obj;
                    w = FmodexWidgetManager.INSTANCE.getWidget(device.getID());
                }

                if (w instanceof AbstractDeviceWidget) {
                    deviceWidgetContainer.setVisible(true);
                    AbstractDeviceWidget widget = (AbstractDeviceWidget) w;
                    for (Control c : deviceWidgetContainer.getChildren()) {
                        c.setVisible(false);
                        if (!c.isDisposed()) {
                            c.dispose();
                        }
                    }
                    Control control = widget.createControl(deviceWidgetContainer, SWT.NONE);
                    if (!control.isDisposed() && control != null) {
                        control.setVisible(true);
                    }
                    if (device != null) {
                        if (device.getTrack() != null && device.getTrack().getChannel() != null
                                && clip != null) {
                            IChannel channel = device.getTrack().getChannel();
                            if (channel instanceof AudioChannel) {
                                widget.init((AudioChannel) channel, clip.getSound());
                            }
                        }
                    }
                    deviceWidgetContainer.layout(true);
                    widget.redraw();
                } else {
                    sc.setVisible(false);
                    for (Control c : sc.getChildren()) {
                        c.setVisible(false);
                        if (!c.isDisposed()) {
                            c.dispose();
                        }
                    }
                }
                sc.redraw();
            } else {
                deviceWidgetContainer.setVisible(false);
                for (Control c : deviceWidgetContainer.getChildren()) {
                    c.setVisible(false);
                    if (!c.isDisposed()) {
                        c.dispose();
                    }
                }
            }
        }
    });

    bottomSash.setWeights(new int[] { 1, 5 });

    if (devicesPanel != null) {
        deviceWidgetContainer.setVisible(true);
        devicesPanel.setVisible(true);
        devicesPanel.setSize(sash.getSize().x, 250);
        devicesPanel.layout(true);
        deviceWidgetContainer.setSize(sash.getSize().x, 250);
        deviceWidgetContainer.redraw();
        deviceWidgetContainer.layout(true);
        deviceWidgetContainer.redraw();
        devicesPanel.layout(true);
        devicesPanel.redraw();

        if (devicesViewer.getTree() != null && devicesViewer.getTree().getItemCount() > 0) {
            @SuppressWarnings("rawtypes")
            List lst = (List) devicesViewer.getInput();
            devicesViewer.getTree().select(devicesViewer.getTree().getItem(0));
            subDetailsViewer.refresh(true);
        }
        devicesPanel.layout(true);
        devicesPanel.redraw();
        for (Control c : devicesPanel.getChildren()) {
            if (c instanceof Control) {
                c.redraw();
            }
        }
    }

    sash.setWeights(new int[] { 2, 2, 2 });
}

From source file:net.sf.smbt.ui.audio.view.FmodexLiveView.java

License:LGPL

private TreeViewerColumn createTableViewerColumn(String title, int bound) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(subDetailsViewer, SWT.NONE);
    final TreeColumn column = viewerColumn.getColumn();

    column.setText(title);//w  ww.j  a  va  2 s  .  c om
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(true);

    viewerColumn.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        protected void paint(Event event, Object element) {
            TreeItem treeItem = (TreeItem) event.item;

            Object obj = treeItem.getData(viewerColumn.getColumn().getText() + "#clip");
            Object track = treeItem.getData(viewerColumn.getColumn().getText() + "#track");
            if (obj != null && track != null) {
                AudioClip c = (AudioClip) obj;
                int x = event.getBounds().x;
                int y = event.getBounds().y;

                String txt = "";
                AudioChannel channel = (AudioChannel) ((AudioTrack) track).getChannel();
                if (c.getSound() != null && channel != null) {
                    TimeTag tag = AudioUtils.INSTANCE.getTimePosition(c.getSound(), channel);
                    long ms = tag.getTime();
                    long lenms = tag.getDuration();

                    txt = String.format(" (%02d:%02d:%02d/%02d:%02d:%02d)", ms / 1000 / 60, ms / 1000 % 60,
                            ms / 10 % 100, lenms / 1000 / 60, lenms / 1000 % 60, lenms / 10 % 100
                    //tag.getStatus().equals(CLIP_STATUS.PAUSE) ? "Paused " : tag.getStatus().equals(CLIP_STATUS.PLAY) ? "Playing" : "Stopped"
                    );

                    event.gc.drawText(c.getLabel() + " " + txt, x, y);

                    int width = 0;
                    int height = event.height - 4;
                    int x0 = event.x;
                    int y0 = event.y + 2;
                    float l = tag.getDuration();
                    float p = tag.getTime();

                    Color oldBG = event.gc.getBackground();
                    Color oldFG = event.gc.getForeground();
                    event.gc.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));

                    if (p > 0 && l > 0) {
                        float ratio = p / l;
                        width = Float.valueOf(ratio * (float) viewerColumn.getColumn().getWidth()).intValue();
                        event.gc.setAlpha(100);
                        event.gc.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
                        event.gc.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
                        event.gc.fillRoundRectangle(x0, y0, width, height, 2, 2);
                        event.gc.setAlpha(255);
                        event.gc.drawRoundRectangle(x0, y0, width, height, 2, 2);
                    }
                    event.gc.setForeground(oldFG);
                    event.gc.setBackground(oldBG);
                }
            } else {
                super.paint(event, element);
            }
        }

        @Override
        public void update(ViewerCell cell) {
            super.update(cell);
            if (cell.getElement() instanceof AudioScene) {
                AudioScene scene = (AudioScene) cell.getElement();
                int idx = cell.getColumnIndex();
                if (project.getTracks().size() > idx) {
                    AudioClip clip = scene.getClips().get(idx);
                    AudioTrack track = project.getTracks().get(idx);
                    track.setLabel(viewerColumn.getColumn().getText());
                    AudioFile file = clip.getFile();
                    if (file != null) {
                    }
                    cell.getItem().setData(track.getLabel() + "#clip", clip);
                    cell.getItem().setData(track.getLabel() + "#track", track);
                    cell.setText(clip.getLabel());
                }
            } else {
                cell.setText("clip !!!");
            }
        }
    });
    return viewerColumn;
}

From source file:net.sf.smbt.ui.btc.views.MTGoxView.java

License:LGPL

private TreeViewerColumn createHistoryTableViewerColumn(String title, int bound) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(hitoryTreeViewer, SWT.NONE);
    final TreeColumn column = viewerColumn.getColumn();
    column.setText(title);//  ww w  .j  a va 2 s. c  o  m
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(true);
    viewerColumn.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        protected void paint(Event event, Object element) {
            super.paint(event, element);
        }

        @Override
        public void update(ViewerCell cell) {
            super.update(cell);
            if (cell.getElement() instanceof WalletRecord) {
                WalletRecord v = (WalletRecord) cell.getElement();
                String cellText = "???";
                switch (cell.getColumnIndex()) {
                case 0:
                    cellText = "" + v.getIndex();
                    break;
                case 1:
                    cellText = "" + v.getInfo();
                    break;
                case 2:
                    cellText = "" + v.getType();
                    break;
                case 3:
                    cellText = "" + v.getBalance().getDisplay_short();
                    break;
                case 4:
                    cellText = "" + v.getDate();
                    break;
                case 5:
                    cellText = "" + v.getValue().getDisplay_short();
                    break;
                }
                cell.setText(cellText);
                cell.setForeground(GUIToolkit.FG);
                cell.setBackground(GUIToolkit.BG);
            }
        }
    });
    return viewerColumn;
}

From source file:net.sf.smbt.ui.btc.views.MTGoxView.java

License:LGPL

private TreeViewerColumn createTableViewerColumn(String title, int bound) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(transactionTreeViewer, SWT.NONE);
    final TreeColumn column = viewerColumn.getColumn();
    column.setText(title);/*from   www.j a va2 s . co m*/
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(true);
    viewerColumn.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        protected void paint(Event event, Object element) {
            super.paint(event, element);
        }

        @Override
        public void update(ViewerCell cell) {
            super.update(cell);
            if (cell.getElement() instanceof Order) {
                Order v = (Order) cell.getElement();
                String cellText = "???";
                switch (cell.getColumnIndex()) {
                case 0:
                    cellText = "" + v.getOid();
                    break;
                case 1:
                    cellText = "" + v.getType();
                    break;
                case 2:
                    cellText = "" + v.getAmount().getDisplay_short();
                    break;
                case 3:
                    cellText = "" + v.getPrice().getDisplay_short();
                    break;
                case 4:
                    cellText = "" + v.getStatus();
                    break;
                case 5:
                    cellText = "" + v.getDate();
                    break;
                }
                cell.setText(cellText);
                cell.setForeground(GUIToolkit.FG);
                cell.setBackground(GUIToolkit.BG);
            }
        }
    });
    return viewerColumn;
}

From source file:net.sf.smbt.ui.btc.views.TradesView.java

License:LGPL

private TreeViewerColumn createBidTradeTableViewerColumn(String title, int bound, TreeViewer tv) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(tv, SWT.NONE);
    final TreeColumn column = viewerColumn.getColumn();
    column.setText(title);/*from www  .j  a v  a2 s  .c o  m*/
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(true);
    viewerColumn.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            super.update(cell);
            if (cell.getElement() instanceof DepthValue) {
                DepthValue v = (DepthValue) cell.getElement();
                String cellText = "???";
                cell.setForeground(GUIToolkit.FG);
                cell.setBackground(GUIToolkit.BG);
                long now = System.currentTimeMillis();
                switch (cell.getColumnIndex()) {
                case 0: // Bid Sum
                    if (v instanceof DepthValue) {
                        cellText = "" + v.getSum();
                    }
                    break;
                case 1: // Size
                    if (v instanceof DepthValue) {
                        cellText = "" + v.getAmount();
                    }
                    break;
                case 2: // Bid
                    if (v instanceof DepthValue) {
                        cellText = "" + v.getPrice();
                    }
                    break;
                }
                cell.setText(cellText);
                if (v instanceof DepthValue && (cell.getColumnIndex() == 0 || cell.getColumnIndex() == 1
                        || cell.getColumnIndex() == 2)) {
                    if (v.getLastLocalStatus() + 12000l > now) {
                        if (v.getStatus().equals(DepthStatus.ADD)) {
                            cell.setForeground(GUIToolkit.lightGreen);
                        } else if (v.getStatus().equals(DepthStatus.REM)) {
                            cell.setForeground(GUIToolkit.lightRed);
                        } else if (v.getStatus().equals(DepthStatus.UPDATE)) {
                            cell.setForeground(GUIToolkit.orange);
                        }
                    }
                }
            }
        }
    });
    return viewerColumn;
}

From source file:net.sf.smbt.ui.btc.views.TradesView.java

License:LGPL

private TreeViewerColumn createAskTradeTableViewerColumn(String title, int bound, TreeViewer tv) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(tv, SWT.NONE);
    final TreeColumn column = viewerColumn.getColumn();
    column.setText(title);//from   ww w  .j a  v  a  2 s  . co m
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(true);
    viewerColumn.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            super.update(cell);
            if (cell.getElement() instanceof DepthValue) {
                DepthValue v = (DepthValue) cell.getElement();
                String cellText = "???";
                cell.setForeground(GUIToolkit.FG);
                cell.setBackground(GUIToolkit.BG);
                long now = System.currentTimeMillis();
                switch (cell.getColumnIndex()) {
                case 2: // Bid Sum
                    if (v instanceof DepthValue) {
                        cellText = "" + v.getSum();
                    }
                    break;
                case 1: // Size
                    if (v instanceof DepthValue) {
                        cellText = "" + v.getAmount();
                    }
                    break;
                case 0: // Bid
                    if (v instanceof DepthValue) {
                        cellText = "" + v.getPrice();
                    }
                    break;
                }
                cell.setText(cellText);
                if (v instanceof DepthValue && (cell.getColumnIndex() == 0 || cell.getColumnIndex() == 1
                        || cell.getColumnIndex() == 2)) {
                    if (v.getLastLocalStatus() + 12000l > now) {
                        if (v.getStatus().equals(DepthStatus.ADD)) {
                            cell.setForeground(GUIToolkit.lightGreen);
                        } else if (v.getStatus().equals(DepthStatus.REM)) {
                            cell.setForeground(GUIToolkit.lightRed);
                        } else if (v.getStatus().equals(DepthStatus.UPDATE)) {
                            cell.setForeground(GUIToolkit.orange);
                        }
                    }
                }
            }
        }
    });
    return viewerColumn;
}