Example usage for org.eclipse.jface.resource ImageDescriptor createFromImage

List of usage examples for org.eclipse.jface.resource ImageDescriptor createFromImage

Introduction

In this page you can find the example usage for org.eclipse.jface.resource ImageDescriptor createFromImage.

Prototype

public static ImageDescriptor createFromImage(Image img) 

Source Link

Document

Creates and returns a new image descriptor for the given image.

Usage

From source file:org.eclipse.datatools.sqltools.sqleditor.internal.editor.SQLImageDescriptor.java

License:Open Source License

private void drawBottomLeft() {
    Point size = getSize();/*from w  ww  . ja  va2  s  .  com*/
    int x = 0;
    if ((_fFlags & ERROR) != 0) {
        ImageData data = getImageData(
                ImageDescriptor.createFromImage(SQLEditorResources.getImage("over16/error_co")));
        drawImage(data, x, size.y - data.height);
        x += data.width;
    }
    if ((_fFlags & WARNING) != 0) {
        ImageData data = getImageData(
                ImageDescriptor.createFromImage(SQLEditorResources.getImage("over16/warning_co")));
        drawImage(data, x, size.y - data.height);
        x += data.width;
    }

}

From source file:org.eclipse.dltk.internal.ui.typehierarchy.HierarchyLabelProvider.java

License:Open Source License

public Image getImage(Object element) {
    Image result = null;//  ww  w . j a  va2s  .co m
    if (element instanceof IType) {
        if (isCustomTypeHierarchy()) {
            // TODO (alex) think of better solution
            return getScriptLabelProvider().getImage(element);
        }
        ImageDescriptor desc = getTypeImageDescriptor((IType) element);
        if (desc != null) {
            if (element.equals(fHierarchy.getInputElement())) {
                desc = new FocusDescriptor(desc);
            }
            result = DLTKUIPlugin.getImageDescriptorRegistry().get(desc);
        }
    } else if (element instanceof CumulativeType) {
        final CumulativeType cType = (CumulativeType) element;
        ImageDescriptor desc = getTypeImageDescriptor(cType.getFirst());
        if (desc != null) {
            if (cType.contains(fHierarchy.getInputElement())) {
                desc = new FocusDescriptor(desc);
            }
            result = DLTKUIPlugin.getImageDescriptorRegistry().get(desc);
        }
    } else if (element instanceof CumulativeType.Part) {
        final CumulativeType.Part part = (CumulativeType.Part) element;
        result = super.getImage(part.type.getSourceModule());
        ImageDescriptor desc = new ScriptElementImageDescriptor(ImageDescriptor.createFromImage(result), 0,
                ScriptElementImageProvider.BIG_SIZE);
        result = DLTKUIPlugin.getImageDescriptorRegistry().get(desc);
    } else {
        result = fImageLabelProvider.getImageLabel(element, evaluateImageFlags(element));
    }
    return decorateImage(result, element);
}

From source file:org.eclipse.dltk.mod.internal.ui.typehierarchy.HierarchyLabelProvider.java

License:Open Source License

public Image getImage(Object element) {
    Image result = null;/*from  w w  w .  jav  a  2 s.c  o  m*/
    if (element instanceof IType) {
        ImageDescriptor desc = getTypeImageDescriptor((IType) element);
        if (desc != null) {
            if (element.equals(fHierarchy.getInputElement())) {
                desc = new FocusDescriptor(desc);
            }
            result = DLTKUIPlugin.getImageDescriptorRegistry().get(desc);
        }
    } else if (element instanceof CumulativeType) {
        final CumulativeType cType = (CumulativeType) element;
        ImageDescriptor desc = getTypeImageDescriptor(cType.getFirst());
        if (desc != null) {
            if (cType.contains(fHierarchy.getInputElement())) {
                desc = new FocusDescriptor(desc);
            }
            result = DLTKUIPlugin.getImageDescriptorRegistry().get(desc);
        }
    } else if (element instanceof CumulativeType.Part) {
        final CumulativeType.Part part = (CumulativeType.Part) element;
        result = super.getImage(part.type.getSourceModule());
        ImageDescriptor desc = new ScriptElementImageDescriptor(ImageDescriptor.createFromImage(result), 0,
                ScriptElementImageProvider.BIG_SIZE);
        result = DLTKUIPlugin.getImageDescriptorRegistry().get(desc);
    } else {
        result = fImageLabelProvider.getImageLabel(element, evaluateImageFlags(element));
    }
    return decorateImage(result, element);
}

From source file:org.eclipse.dltk.mod.ui.ScriptElementImageProvider.java

License:Open Source License

/**
 * Returns an image descriptor for ascriptelement. This is the base image,
 * no overlays./*w  w  w  .jav  a  2  s  .  c om*/
 */
public ImageDescriptor getBaseImageDescriptor(IModelElement element, int renderFlags) {

    // if (true) {
    // return DLTKPluginImages.DESC_OBJS_UNKNOWN;
    // }

    ILabelProvider provider = getContributedLabelProvider(element);
    if (provider != null) {
        Image img = provider.getImage(element);
        if (img != null) {
            return ImageDescriptor.createFromImage(img);
        }
    }

    try {
        switch (element.getElementType()) {
        case IModelElement.METHOD: {
            IMethod method = (IMethod) element;
            int flags = method.getFlags();
            return getMethodImageDescriptor(flags);
        }

        case IModelElement.FIELD: {
            IField member = (IField) element;
            return getFieldImageDescriptor(member.getFlags());
        }

        case IModelElement.TYPE: {
            IType type = (IType) element;
            return getTypeImageDescriptor(type.getFlags(), useLightIcons(renderFlags));
        }

        case IModelElement.PACKAGE_DECLARATION:
            return DLTKPluginImages.DESC_OBJS_PACKDECL;

        case IModelElement.PROJECT_FRAGMENT: {
            IProjectFragment root = (IProjectFragment) element;
            if (root.isExternal()) {
                if (root.isArchive()) {
                    return DLTKPluginImages.DESC_OBJS_JAR_WSRC;
                } else {
                    return DLTKPluginImages.DESC_OBJS_PACKFRAG_ROOT;
                }
            } else {
                return DLTKPluginImages.DESC_OBJS_PACKFRAG_ROOT;
            }
        }

        case IModelElement.SCRIPT_FOLDER:
            return getScriptFolderIcon(element, renderFlags);

        case IModelElement.SOURCE_MODULE:
            boolean external = element instanceof IExternalSourceModule;
            return getSourceModuleIcon(element, external, renderFlags);

        case IModelElement.SCRIPT_PROJECT:
            IScriptProject jp = (IScriptProject) element;
            if (jp.getProject().isOpen()) {
                IProject project = jp.getProject();
                IWorkbenchAdapter adapter = (IWorkbenchAdapter) project.getAdapter(IWorkbenchAdapter.class);
                if (adapter != null) {
                    ImageDescriptor result = adapter.getImageDescriptor(project);
                    if (result != null)
                        return result;
                }
                return DESC_OBJ_PROJECT;
            }
            return DESC_OBJ_PROJECT_CLOSED;
        // return DESC_OBJ_PROJECT;

        case IModelElement.SCRIPT_MODEL:
            // return DLTKPluginImages.DESC_OBJS_JAVA_MODEL;
            return null;
        }
        Assert.isTrue(false, DLTKUIMessages.ScriptImageLabelprovider_assert_wrongImage);

        return DLTKPluginImages.DESC_OBJS_GHOST;
    } catch (ModelException e) {
        if (e.isDoesNotExist())
            return DLTKPluginImages.DESC_OBJS_UNKNOWN;

        DLTKUIPlugin.log(e);
        return DLTKPluginImages.DESC_OBJS_GHOST;
    }
}

From source file:org.eclipse.dltk.ui.ScriptElementImageProvider.java

License:Open Source License

/**
 * Returns an image descriptor for ascriptelement. This is the base image,
 * no overlays.//w w w. java2s. c  o m
 */
public ImageDescriptor getBaseImageDescriptor(IModelElement element, int renderFlags) {

    // if (true) {
    // return DLTKPluginImages.DESC_OBJS_UNKNOWN;
    // }

    ILabelProvider provider = getContributedLabelProvider(element);
    if (provider != null) {
        Image img = provider.getImage(element);
        if (img != null) {
            return ImageDescriptor.createFromImage(img);
        }
    }

    try {
        switch (element.getElementType()) {
        case IModelElement.IMPORT_CONTAINER:
            return DLTKPluginImages.DESC_OBJS_IMPCONT;
        case IModelElement.IMPORT_DECLARATION:
            return DLTKPluginImages.DESC_OBJS_IMPDECL;
        case IModelElement.METHOD: {
            IMethod method = (IMethod) element;
            int flags = method.getFlags();
            return getMethodImageDescriptor(flags);
        }

        case IModelElement.FIELD: {
            IField member = (IField) element;
            return getFieldImageDescriptor(member.getFlags());
        }

        case IModelElement.TYPE: {
            IType type = (IType) element;
            return getTypeImageDescriptor(type.getFlags(), useLightIcons(renderFlags));
        }

        case IModelElement.LOCAL_VARIABLE:
            return DLTKPluginImages.DESC_OBJS_LOCAL_VARIABLE;

        case IModelElement.PACKAGE_DECLARATION:
            return DLTKPluginImages.DESC_OBJS_PACKDECL;

        case IModelElement.PROJECT_FRAGMENT: {
            IProjectFragment root = (IProjectFragment) element;
            if (root.isExternal()) {
                if (root.isArchive()) {
                    return DLTKPluginImages.DESC_OBJS_JAR_WSRC;
                } else {
                    return DLTKPluginImages.DESC_OBJS_PACKFRAG_ROOT;
                }
            } else {
                return DLTKPluginImages.DESC_OBJS_PACKFRAG_ROOT;
            }
        }

        case IModelElement.SCRIPT_FOLDER:
            return getScriptFolderIcon(element, renderFlags);

        case IModelElement.SOURCE_MODULE:
            if (((ISourceModule) element).isBinary()) {
                return getBinaryModuleIcon(element, renderFlags);
            }
            boolean external = element instanceof IExternalSourceModule;
            return getSourceModuleIcon(element, external, renderFlags);

        case IModelElement.SCRIPT_PROJECT:
            IScriptProject jp = (IScriptProject) element;
            if (jp.getProject().isOpen()) {
                IProject project = jp.getProject();
                IWorkbenchAdapter adapter = (IWorkbenchAdapter) project.getAdapter(IWorkbenchAdapter.class);
                if (adapter != null) {
                    ImageDescriptor result = adapter.getImageDescriptor(project);
                    if (result != null)
                        return result;
                }
                return DESC_OBJ_PROJECT;
            }
            return DESC_OBJ_PROJECT_CLOSED;
        // return DESC_OBJ_PROJECT;

        case IModelElement.SCRIPT_MODEL:
            // return DLTKPluginImages.DESC_OBJS_JAVA_MODEL;
            return null;
        }
        Assert.isTrue(false, DLTKUIMessages.ScriptImageLabelprovider_assert_wrongImage + "("
                + element.getElementType() + "," + element.getElementName() + ")");

        return DLTKPluginImages.DESC_OBJS_GHOST;
    } catch (ModelException e) {
        if (e.isDoesNotExist())
            return DLTKPluginImages.DESC_OBJS_UNKNOWN;

        DLTKUIPlugin.log(e);
        return DLTKPluginImages.DESC_OBJS_GHOST;
    }
}

From source file:org.eclipse.e4.internal.tools.wizards.classes.AbstractNewClassPage.java

License:Open Source License

public void createControl(Composite parent) {
    final Image img = new Image(parent.getDisplay(),
            getClass().getClassLoader().getResourceAsStream("/icons/full/wizban/newclass_wiz.png"));
    setImageDescriptor(ImageDescriptor.createFromImage(img));

    parent.addDisposeListener(new DisposeListener() {

        public void widgetDisposed(DisposeEvent e) {
            img.dispose();//from  www.ja va  2 s  . co  m
            setImageDescriptor(null);
        }
    });

    parent = new Composite(parent, SWT.NULL);
    parent.setLayoutData(new GridData(GridData.FILL_BOTH));
    parent.setLayout(new GridLayout(3, false));

    clazz = createInstance();
    if ((froot != null) && (initialString != null)) {
        clazz.setPackageFragment(
                froot.getPackageFragment(parseInitialStringForPackage(initialString) == null ? ""
                        : parseInitialStringForPackage(initialString)));
        clazz.setName(parseInitialStringForClassName(initialString));
    }
    DataBindingContext dbc = new DataBindingContext();
    WizardPageSupport.create(this, dbc);

    {
        Label l = new Label(parent, SWT.NONE);
        l.setText("Source folder");

        Text t = new Text(parent, SWT.BORDER);
        t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        t.setEditable(false);

        final Binding bd = dbc.bindValue(WidgetProperties.text().observe(t),
                BeanProperties.value("fragmentRoot").observe(clazz),
                new UpdateValueStrategy().setBeforeSetValidator(new PFRootValidator()),
                new UpdateValueStrategy().setConverter(new PackageFragmentRootToStringConverter()));

        Button b = new Button(parent, SWT.PUSH);
        b.setText("Browse ...");
        b.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                IPackageFragmentRoot root = choosePackageRoot();
                if (root != null) {
                    froot = root;
                    clazz.setFragmentRoot(root);
                }
                bd.updateModelToTarget();
            }
        });
    }

    {
        Label l = new Label(parent, SWT.NONE);
        l.setText("Package");
        Text t = new Text(parent, SWT.BORDER);
        t.setEditable(true);
        t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        final Binding bd = dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(t),
                BeanProperties.value("packageFragment").observe(clazz),
                new UpdateValueStrategy().setConverter(new StringToPackageFragmentConverter(clazz)),
                new UpdateValueStrategy().setConverter(new PackageFragmentToStringConverter()));

        Button b = new Button(parent, SWT.PUSH);
        b.setText("Browse ...");
        b.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                IPackageFragment fragment = choosePackage();
                if (fragment != null) {
                    clazz.setPackageFragment(fragment);
                }
                bd.updateModelToTarget(); //TODO Find out why this is needed
            }
        });
    }

    {
        IWidgetValueProperty textProp = WidgetProperties.text(SWT.Modify);

        Label l = new Label(parent, SWT.NONE);
        l.setText("Name");

        Text t = new Text(parent, SWT.BORDER);
        t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        dbc.bindValue(textProp.observe(t), BeanProperties.value("name", String.class).observe(clazz),
                new UpdateValueStrategy().setBeforeSetValidator(new ClassnameValidator(clazz)), null);

        new Label(parent, SWT.NONE);
    }

    {
        Label l = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
        l.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false, 3, 1));
    }

    createFields(parent, dbc);
    setControl(parent);
}

From source file:org.eclipse.e4.tools.emf.ui.common.component.AbstractComponentEditor.java

License:Open Source License

public ImageDescriptor createImageDescriptor(String key) {
    if (key == null) {
        return null;
    }/*from  w  w  w  . ja  v a  2 s  .  c  om*/
    return ImageDescriptor.createFromImage(createImage(key));
}

From source file:org.eclipse.e4.tools.emf.ui.internal.common.ModelEditor.java

License:Open Source License

private Composite createFormTab(Composite composite) {
    SashForm form = new SashForm(composite, SWT.HORIZONTAL);
    form.setBackground(form.getDisplay().getSystemColor(SWT.COLOR_WHITE));

    viewer = createTreeViewerArea(form);

    Composite parent = new Composite(form, SWT.NONE);
    FillLayout l = new FillLayout();
    parent.setLayout(l);/*  w w  w.j a  va2  s.  c  om*/

    Composite editingArea = new Composite(parent, SWT.BORDER);
    GridLayout gl = new GridLayout();
    editingArea.setLayout(gl);

    Composite headerContainer = new Composite(editingArea, SWT.NONE);
    headerContainer.setLayout(new GridLayout(3, false));
    headerContainer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    final Label iconLabel = new Label(headerContainer, SWT.NONE);
    iconLabel.setLayoutData(new GridData(20, 20));

    final Label sectionHeaderLabel = new Label(headerContainer, SWT.NONE);
    sectionHeaderLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    final Label separatorLabel = new Label(headerContainer, SWT.SEPARATOR | SWT.HORIZONTAL);
    GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
    gridData.horizontalSpan = 2;
    separatorLabel.setLayoutData(gridData);

    final StackLayout layout = new StackLayout();
    final Composite contentContainer = new Composite(editingArea, SWT.NONE);
    contentContainer.setLayoutData(new GridData(GridData.FILL_BOTH));

    contentContainer.setLayout(layout);

    viewer.getTree().addKeyListener(new KeyAdapter() {
        @Override
        public void keyReleased(final KeyEvent e) {
            if (e.keyCode == SWT.DEL) {
                List<EObject> list = new ArrayList<EObject>();
                final IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
                for (Object o : ((StructuredSelection) selection).toList()) {
                    if (o instanceof EObject) {
                        list.add((EObject) o);
                    }
                }
                if (list.isEmpty() == false) {
                    Command cmd = DeleteCommand.create(ModelEditor.this.modelProvider.getEditingDomain(), list);
                    if (cmd.canExecute()) {
                        ModelEditor.this.modelProvider.getEditingDomain().getCommandStack().execute(cmd);
                    }
                }
            }
        }
    });
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            if (!event.getSelection().isEmpty()) {
                final IStructuredSelection s = (IStructuredSelection) event.getSelection();
                if (s.getFirstElement() instanceof EObject) {
                    EObject obj = (EObject) s.getFirstElement();
                    final AbstractComponentEditor editor = getEditor(obj.eClass());
                    if (editor != null) {
                        currentEditor = editor;
                        sectionHeaderLabel.setText(editor.getLabel(obj));
                        iconLabel.setImage(editor.getImage(obj, iconLabel.getDisplay()));
                        obsManager.runAndCollect(new Runnable() {

                            @Override
                            public void run() {
                                Composite comp = editor.getEditor(contentContainer, s.getFirstElement());
                                comp.setBackgroundMode(SWT.INHERIT_DEFAULT);
                                layout.topControl = comp;
                                contentContainer.layout(true);
                            }
                        });
                    }
                } else {
                    VirtualEntry<?> entry = (VirtualEntry<?>) s.getFirstElement();
                    final AbstractComponentEditor editor = virtualEditors.get(entry.getId());
                    if (editor != null) {
                        currentEditor = editor;
                        sectionHeaderLabel.setText(editor.getLabel(entry));
                        iconLabel.setImage(editor.getImage(entry, iconLabel.getDisplay()));
                        obsManager.runAndCollect(new Runnable() {

                            @Override
                            public void run() {
                                Composite comp = editor.getEditor(contentContainer, s.getFirstElement());
                                comp.setBackgroundMode(SWT.INHERIT_DEFAULT);
                                layout.topControl = comp;
                                contentContainer.layout(true);
                            }

                        });
                    }
                }

                // Rectangle r = scrolling.getClientArea();
                // scrolling.setMinSize(contentContainer.computeSize(r.width,
                // SWT.DEFAULT));
                // scrolling.setOrigin(0, 0);
                // scrolling.layout(true, true);

                if (selectionService != null) {
                    selectionService.setSelection(s.getFirstElement());
                }

            }
        }
    });

    form.setWeights(new int[] { 3, 4 });

    MenuManager mgr = new MenuManager();
    mgr.setRemoveAllWhenShown(true);
    mgr.addMenuListener(new IMenuListener() {

        @Override
        public void menuAboutToShow(IMenuManager manager) {
            final IStructuredSelection s = (IStructuredSelection) viewer.getSelection();
            final List listOfSelections = s.toList();
            int noSelected = listOfSelections.size();

            boolean addSeparator = false;
            if (!s.isEmpty() && noSelected == 1) {
                List<Action> actions;
                if (s.getFirstElement() instanceof VirtualEntry<?>) {
                    actions = virtualEditors.get(((VirtualEntry<?>) s.getFirstElement()).getId())
                            .getActions(s.getFirstElement());
                    if (actions.size() > 0) {
                        MenuManager addMenu = new MenuManager(messages.ModelEditor_AddChild);
                        for (Action a : actions) {
                            addSeparator = true;
                            addMenu.add(a);
                        }
                        manager.add(addMenu);
                    }

                    actions = virtualEditors.get(((VirtualEntry<?>) s.getFirstElement()).getId())
                            .getActionsImport(s.getFirstElement());
                    if (actions.size() > 0) {
                        MenuManager menu = new MenuManager("Import 3x");
                        for (Action a : actions) {
                            addSeparator = true;
                            menu.add(a);
                        }
                        manager.add(menu);
                    }

                    if (addSeparator)
                        manager.add(new Separator());

                } else {

                    final EObject o = (EObject) s.getFirstElement();
                    AbstractComponentEditor editor = getEditor(o.eClass());

                    // Build Add Child menu
                    if (editor != null) {
                        actions = new ArrayList<Action>(editor.getActions(s.getFirstElement()));
                    } else {
                        actions = new ArrayList<Action>();
                    }

                    if (actions.size() > 0) {
                        MenuManager addMenu = new MenuManager(messages.ModelEditor_AddChild);
                        for (Action a : actions) {
                            addSeparator = true;
                            addMenu.add(a);
                        }
                        manager.add(addMenu);
                    }

                    // Build import menu
                    if (editor != null) {
                        actions = new ArrayList<Action>(editor.getActionsImport(s.getFirstElement()));
                    } else {
                        actions = new ArrayList<Action>();
                    }

                    if (actions.size() > 0) {
                        // TODO WIM - extract nls
                        MenuManager menu = new MenuManager("Import 3x");
                        for (Action a : actions) {
                            addSeparator = true;
                            menu.add(a);
                        }
                        manager.add(menu);
                    }

                    if (o.eContainer() != null) {
                        addSeparator = true;
                        manager.add(new Action(messages.ModelEditor_Delete, ImageDescriptor.createFromImage(
                                resourcePool.getImageUnchecked(ResourceProvider.IMG_Obj16_cross))) {
                            @Override
                            public void run() {
                                Command cmd = DeleteCommand
                                        .create(ModelEditor.this.modelProvider.getEditingDomain(), o);
                                if (cmd.canExecute()) {
                                    ModelEditor.this.modelProvider.getEditingDomain().getCommandStack()
                                            .execute(cmd);
                                }
                            }
                        });
                    }
                }
            }
            // multi selection
            if (noSelected > 0) {
                if ((!isModelFragment()) && modelExtractor != null)
                    manager.add(
                            new Action(messages.ModelEditor_ExtractFragment, ImageDescriptor.createFromImage(
                                    resourcePool.getImageUnchecked(ResourceProvider.IMG_ModelFragments))) {
                                @Override
                                public void run() {
                                    ArrayList<MApplicationElement> maes = new ArrayList<MApplicationElement>();
                                    for (Object objSelect : listOfSelections) {
                                        EObject container = null;
                                        if (objSelect instanceof VirtualEntry<?>) {

                                            VirtualEntry<?> ve = (VirtualEntry<?>) objSelect;
                                            container = (EObject) ve.getOriginalParent();
                                            IObservableList list = ve.getList();
                                            Iterator iterator = list.iterator();
                                            while (iterator.hasNext()) {
                                                maes.add((MApplicationElement) iterator.next());
                                            }

                                        } else {
                                            container = ((EObject) objSelect).eContainer();
                                            MApplicationElement objSelect2 = (MApplicationElement) objSelect;
                                            if (!(objSelect2 instanceof MApplication))
                                                maes.add(objSelect2);
                                            else {
                                                // can't extract application
                                                return;
                                            }

                                        }

                                        String containerId = ((MApplicationElement) container).getElementId();
                                        if (containerId == null || containerId.length() == 0) {
                                            MessageDialog.openError(viewer.getControl().getShell(), null,
                                                    messages.ModelEditor_ExtractFragment_NoParentId);

                                            return;
                                        }

                                    }

                                    if (modelExtractor.extract(viewer.getControl().getShell(), project, maes)) {
                                        Command cmd = DeleteCommand.create(
                                                ModelEditor.this.modelProvider.getEditingDomain(), maes);
                                        if (cmd.canExecute()) {
                                            ModelEditor.this.modelProvider.getEditingDomain().getCommandStack()
                                                    .execute(cmd);
                                        }
                                    }

                                };
                            });

            }

            IExtensionRegistry registry = RegistryFactory.getRegistry();
            IExtensionPoint extPoint = registry.getExtensionPoint("org.eclipse.e4.tools.emf.ui.scripting"); //$NON-NLS-1$
            final IConfigurationElement[] elements = extPoint.getConfigurationElements();

            if (elements.length > 0 && !s.isEmpty() && s.getFirstElement() instanceof MApplicationElement
                    && noSelected == 1) {
                if (addSeparator) {
                    manager.add(new Separator());
                }

                addSeparator = false;

                MenuManager scriptExecute = new MenuManager(messages.ModelEditor_Script);
                manager.add(scriptExecute);
                for (IConfigurationElement e : elements) {
                    final IConfigurationElement le = e;
                    scriptExecute.add(new Action(e.getAttribute("label")) { //$NON-NLS-1$
                        @Override
                        public void run() {
                            try {
                                MApplicationElement o = (MApplicationElement) s.getFirstElement();
                                IScriptingSupport support = (IScriptingSupport) le
                                        .createExecutableExtension("class"); //$NON-NLS-1$
                                IEclipseContext ctx = null;
                                if (project == null) {
                                    if (o instanceof MContext) {
                                        ctx = ((MContext) o).getContext();
                                    } else {
                                        ctx = ModelUtils.getContainingContext(o);
                                    }
                                }

                                support.openEditor(viewer.getControl().getShell(), s.getFirstElement(), ctx);
                            } catch (CoreException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                    });
                }
            }

            if (project != null) {

                if (addSeparator) {
                    manager.add(new Separator());
                }

                Action nlsAction = new Action(messages.ModelEditor_ExternalizeStrings) {
                    @Override
                    public void run() {
                        ExternalizeStringHandler h = ContextInjectionFactory
                                .make(ExternalizeStringHandler.class, context);
                        ContextInjectionFactory.invoke(h, Execute.class, context);
                    }
                };

                Action extIdAction = new Action(messages.ModelEditor_ExportIds) {
                    @Override
                    public void run() {
                        ExportIdsHandler h = ContextInjectionFactory.make(ExportIdsHandler.class, context);
                        ContextInjectionFactory.invoke(h, Execute.class, context);
                    }
                };

                manager.add(nlsAction);
                manager.add(extIdAction);
            } else {
                if (addSeparator) {
                    manager.add(new Separator());
                }

                if (s.getFirstElement() instanceof MUIElement) {
                    final MUIElement el = (MUIElement) s.getFirstElement();
                    if (el.getWidget() instanceof Control) {
                        manager.add(new Action(messages.ModelEditor_ShowControl) {

                            @Override
                            public void run() {
                                ControlHighlighter.show((Control) el.getWidget());
                            }
                        });

                    }
                }

            }

            if (addSeparator) {
                manager.add(new Separator());
            }

            Action expandAction = new Action(messages.ModelEditor_ExpandSubtree) {
                @Override
                public void run() {
                    if (!s.isEmpty()) {
                        if (viewer.getExpandedState(s.getFirstElement())) {
                            viewer.collapseToLevel(s.getFirstElement(), AbstractTreeViewer.ALL_LEVELS);
                        } else {
                            viewer.expandToLevel(s.getFirstElement(), AbstractTreeViewer.ALL_LEVELS);
                        }
                    }
                }
            };

            manager.add(expandAction);

            if (s.getFirstElement() instanceof EObject) {
                manager.add(new Separator());
                final EObject el = (EObject) s.getFirstElement();
                Action gotoXmiAction = new Action(Messages.ModelEditor_goto_xmi) {
                    @Override
                    public void run() {
                        gotoEObject(TAB_XMI, el);
                    }
                };
                manager.add(gotoXmiAction);

                if (listTab != null) {
                    if (EmfUtil.getAttribute(el, "elementId") != null) { //$NON-NLS-1$
                        Action gotoListAction = new Action(Messages.ModelEditor_goto_list) {
                            @Override
                            public void run() {
                                gotoEObject(TAB_LIST, el);
                            }
                        };
                        manager.add(gotoListAction);
                    }
                }

            }
        }
    });

    // Save the stateMask
    viewer.getTree().addKeyListener(new KeyListener() {
        @Override
        public void keyReleased(KeyEvent e) {
            if (mod1Down && (e.keyCode & SWT.MOD1) == SWT.MOD1) {
                mod1Down = false;
            }
        }

        @Override
        public void keyPressed(KeyEvent e) {
            if (!mod1Down && (e.keyCode & SWT.MOD1) == SWT.MOD1) {
                mod1Down = true;
            }
        }
    });

    viewer.addTreeListener(new ITreeViewerListener() {
        @Override
        public void treeExpanded(final TreeExpansionEvent event) {
            if (mod1Down) {
                viewer.getTree().getDisplay().asyncExec(new Runnable() {
                    @Override
                    public void run() {
                        viewer.expandToLevel(event.getElement(), AbstractTreeViewer.ALL_LEVELS);
                    }
                });
            }
        }

        @Override
        public void treeCollapsed(final TreeExpansionEvent event) {
            if (mod1Down) {
                viewer.getTree().getDisplay().asyncExec(new Runnable() {
                    @Override
                    public void run() {
                        viewer.collapseToLevel(event.getElement(), AbstractTreeViewer.ALL_LEVELS);
                    }
                });
            }
        }
    });

    viewer.getControl().setMenu(mgr.createContextMenu(viewer.getControl()));
    viewer.setSelection(new StructuredSelection(modelProvider.getRoot()));

    return form;
}

From source file:org.eclipse.e4.tools.emf.ui.internal.imp.ModelImportWizard.java

License:Open Source License

public ModelImportWizard(Class<? extends MApplicationElement> applicationElement,
        AbstractComponentEditor editor, String hint, IResourcePool resourcePool) {
    this.applicationElement = applicationElement;
    this.editor = editor;
    this.hint = hint;
    this.application = (MApplication) editor.getEditor().getModelProvider().getRoot().get(0);
    setWindowTitle("Model " + applicationElement.getSimpleName() + " Import Wizard");
    setDefaultPageImageDescriptor(ImageDescriptor
            .createFromImage(resourcePool.getImageUnchecked(ResourceProvider.IMG_Wizban16_imp3x_wiz)));
    Assert.isNotNull(RegistryUtil.getStruct(applicationElement, getHint()),
            "Unknown Element: " + applicationElement.getClass().getName());
}

From source file:org.eclipse.e4.tools.ui.dataform.workbench.events.EventFactory.java

License:Open Source License

public static void handleAttribute(Shell shell, IProject project, EObject parent, EObject eObj,
        EAttribute attribute) {// w  w w . ja va  2s .  c om
    if (eObj == null || attribute == null) {
        MessageDialog.openError(shell, "Handle Reference Error", "Failed to handle reference.");
        return;
    }
    String displayName = ApplicationModelHelper.getDisplayName(eObj, attribute);
    if (displayName == null) {
        displayName = attribute.getName();
    }
    if (attribute.isMany()) {
        FeatureEditorDialog dialog = new FeatureEditorDialog(shell, ApplicationModelHelper.getLabelProvider(),
                eObj, attribute, displayName, null);
        dialog.create();
        dialog.getShell().pack(true);
        if (Window.OK == dialog.open()) {
            EList<?> result = dialog.getResult();
            eObj.eSet(attribute, result);
        }
    } else if (ApplicationPackageImpl.Literals.CONTRIBUTION__CONTRIBUTION_URI == attribute) {
        IProgressService service = PlatformUI.getWorkbench().getProgressService();
        IJavaElement[] elements = new IJavaElement[] { JavaCore.create(project) };
        IJavaSearchScope scope = SearchEngine.createJavaSearchScope(elements, IJavaSearchScope.SOURCES);

        FilteredTypesSelectionDialog dialog = new FilteredTypesSelectionDialog(shell, false, service, scope,
                IJavaSearchConstants.CLASS);
        dialog.create();
        dialog.setTitle("Contribution URI");
        dialog.setMessage("Choose a type for contribution.");
        dialog.getShell().setText("Contribution Dialog");
        if (dialog.open() == Window.OK) {
            IType type = (IType) dialog.getFirstResult();
            String contributionURI = createContributionURI(type);
            if (contributionURI != null) {
                eObj.eSet(attribute, contributionURI);
            }
        }
    } else if (UiPackageImpl.Literals.UI_LABEL__ICON_URI == attribute) {
        List<ViewerFilter> filters = new ArrayList<ViewerFilter>();
        ViewerFilter imageFilter = new ViewerFilter() {
            public boolean select(Viewer viewer, Object parentElement, Object element) {
                if (element instanceof IFile) {
                    IFile file = (IFile) element;
                    InputStream in = null;
                    Image image = null;
                    try {
                        in = file.getContents();
                        image = new Image(null, in);
                        return ImageDescriptor.createFromImage(image) != null;
                    } catch (Exception e) {
                        return false;
                    } finally {
                        if (in != null) {
                            try {
                                in.close();
                            } catch (IOException e) {
                            }
                        }
                        if (image != null) {
                            image.dispose();
                        }
                    }
                }
                return true;
            }
        };
        filters.add(imageFilter);
        IFile[] files = WorkspaceResourceDialog.openFileSelection(shell, "Icon URI - Attribute", "Choose Icon.",
                false, null, filters);
        if (files.length == 1) {
            String iconURI = createIconURI(files[0]);
            if (iconURI != null) {
                eObj.eSet(attribute, iconURI);
            }
        }
    } else if (DataForms.isRefSF(attribute)) {
        Object[] children = ApplicationModelHelper.getChildren(parent.eResource(), new IFilter() {
            public boolean select(Object toTest) {
                if (toTest instanceof EObject && toTest instanceof MApplicationElement) {
                    return ((EObject) toTest).eResource() != null;
                }
                return false;
            }
        }, true);
        FindByElementIdDialog dialog = new FindByElementIdDialog(shell, children);
        if (Window.OK == dialog.open()) {
            Object result = dialog.getFirstResult();
            eObj.eSet(attribute, result);
        }
    }
}