Example usage for org.eclipse.jface.viewers StructuredSelection isEmpty

List of usage examples for org.eclipse.jface.viewers StructuredSelection isEmpty

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers StructuredSelection isEmpty.

Prototype

@Override
    public boolean isEmpty() 

Source Link

Usage

From source file:net.rim.ejde.internal.menu.DebugOnDeviceCommandHandler.java

License:Open Source License

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    StructuredSelection selection = (StructuredSelection) HandlerUtil.getCurrentSelection(event);
    if (selection != null && !selection.isEmpty()) {
        AbstractLaunchShortcut ls = new DeviceLaunchShortcut();
        ls.launch(selection, "debug");
    }/* www. j a  va 2s. c om*/
    return null;
}

From source file:net.rim.ejde.internal.menu.DebugOnRunningSimulatorCommandHandler.java

License:Open Source License

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    StructuredSelection selection = (StructuredSelection) HandlerUtil.getCurrentSelection(event);
    if (selection != null && !selection.isEmpty()) {
        AbstractLaunchShortcut ls = new RunningFledgeLaunchShortcut();
        ls.launch(selection, "debug");
    }//from   w  w w.  j  a  v  a  2  s .  c  o m
    return null;
}

From source file:net.rim.ejde.internal.menu.DebugOnSimulatorCommandHandler.java

License:Open Source License

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    StructuredSelection selection = (StructuredSelection) HandlerUtil.getCurrentSelection(event);
    if (selection != null && !selection.isEmpty()) {
        AbstractLaunchShortcut ls = new FledgeLaunchShortcut();
        ls.launch(selection, "debug");
    }//from   ww  w  . j  av  a  2s  . co m
    return null;
}

From source file:net.rim.ejde.internal.menu.LaunchSimulatorCommandHandler.java

License:Open Source License

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    StructuredSelection selection = (StructuredSelection) HandlerUtil.getCurrentSelection(event);
    if (selection != null && !selection.isEmpty()) {
        AbstractLaunchShortcut ls = new FledgeLaunchShortcut();
        ls.launch(selection, "run");
    }//from   w  ww  .j a va2 s  .  c  o  m
    return null;
}

From source file:net.rim.ejde.internal.menu.RunConfigurationsCommandHandler.java

License:Open Source License

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    StructuredSelection selection = (StructuredSelection) HandlerUtil.getCurrentSelection(event);
    if (selection != null && !selection.isEmpty()) {
        AbstractLaunchShortcut ls = new FledgeLaunchShortcut();
        ls.openLaunchConfiguration(selection, "run");
    } else {//from  w  ww  .ja v  a  2 s .  c  om
        DebugUITools.openLaunchConfigurationDialog(Display.getDefault().getShells()[0],
                StructuredSelection.EMPTY, "run");
    }
    return null;
}

From source file:net.rim.ejde.internal.propertytester.ProjectPropertyTester.java

License:Open Source License

@Override
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
    IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
    if (page != null) {
        IViewPart viewPart = page.findView("org.eclipse.jdt.ui.PackageExplorer");
        if (viewPart != null) {
            IPackagesViewPart packageView = (IPackagesViewPart) viewPart;
            ISelection selection = packageView.getSite().getSelectionProvider().getSelection();
            if (selection instanceof StructuredSelection) {
                StructuredSelection ssel = (StructuredSelection) selection;
                if (ssel.isEmpty()) {
                    return false;
                } else {
                    Iterator<Object> iter = ssel.iterator();
                    while (iter.hasNext()) {
                        Object item = iter.next();
                        if (!(item instanceof IJavaProject)) {
                            return false;
                        }//from w  ww .  j av a2 s  . c om
                        if (!NatureUtils.hasBBNature(((IJavaProject) item).getProject())) {
                            return false;
                        }
                    }
                    return true;
                }
            }
        }
    }
    return false;
}

From source file:net.sf.colorer.eclipse.view.HRCRegionsTreeView.java

License:LGPL

Region getSelectedRegion(ISelection selection) {
    if (selection instanceof StructuredSelection) {
        StructuredSelection sel = (StructuredSelection) selection;
        if (sel.isEmpty()) {
            return null;
        }//from  w w  w  .j a  v  a  2  s  . com
        Region region = (Region) sel.getFirstElement();
        return region;
    }
    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);/*  w w w.  j a v  a 2 s  .  c o  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.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  w  w  .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.dmx.controller.dialog.DMXFixtureSelectionDialog.java

License:LGPL

protected Control createDialogArea(Composite parent) {
    Composite container = (Composite) super.createDialogArea(parent);
    container.setLayout(GridLayoutFactory.fillDefaults().create());
    container.setLayoutData(GridDataFactory.fillDefaults().hint(200, 350).grab(true, true).create());

    final FilteredTree filteredTree = GUIToolkit.INSTANCE.createFilteredTree(container,
            SWT.MULTI | SWT.FULL_SELECTION, new PatternFilter(), true);
    filteredTree.setLayout(GridLayoutFactory.fillDefaults().create());
    filteredTree.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());

    filteredTree.getViewer().setContentProvider(new DMXUniverseContentProvider());
    filteredTree.getViewer()/*from w  w w . j av a2  s  . co m*/
            .setLabelProvider(new AdapterFactoryLabelProvider(new OpenDMXCompseableAdapterFactory()));

    filteredTree.getViewer().addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection sel = event.getSelection();
            if (sel instanceof StructuredSelection) {
                StructuredSelection ssel = (StructuredSelection) sel;
                if (!ssel.isEmpty()) {
                    Object obj = ssel.getFirstElement();
                    if (obj instanceof FixtureDefinition) {
                        FixtureDefinition fixture = (FixtureDefinition) obj;
                        setResult(Arrays.asList(new FixtureDefinition[] { fixture }));
                    }
                }
            }
        }
    });

    filteredTree.getViewer().setInput(dmxLib);

    // Create label
    createMessageArea(container);

    return container;
}