Search in sources :

Example 1 with PaletteComponentFactory

use of org.talend.designer.core.ui.editor.PaletteComponentFactory in project tdi-studio-se by Talend.

the class TalendEditorComponentProposalProvider method getProposals.

/**
     * Return an array of Objects representing the valid content proposals for a field.
     * 
     * @param contents the current contents of the field (only consulted if filtering is set to <code>true</code>)
     * @param position the current cursor position within the field (ignored)
     * @return the array of Objects that represent valid proposals for the field given its current content.
     */
@Override
public IContentProposal[] getProposals(String contents, int position) {
    List<IComponent> relatedComponent = TalendEditorPaletteFactory.getRelatedComponents(componentsFactory, contents);
    if (componentAssistant != null) {
        relatedComponent = componentAssistant.filterComponents(relatedComponent);
    }
    proposalList.clear();
    // add joblet components in joblet editor.
    List<PaletteEntry> extraPaletteEntry = ComponentPaletteUtilities.getExtraPaletteEntry();
    if (extraPaletteEntry != null) {
        for (PaletteEntry entry : extraPaletteEntry) {
            if (entry != null && entry.isVisible() && entry instanceof TalendCreationToolEntry) {
                TalendCreationToolEntry tool = (TalendCreationToolEntry) entry;
                CreationFactory creationFactory = tool.getFactory();
                if (creationFactory != null && creationFactory instanceof PaletteComponentFactory) {
                    PaletteComponentFactory componentFactory = (PaletteComponentFactory) creationFactory;
                    proposalList.add(new ComponentContentProposal(componentFactory.getComponent()));
                }
            }
        }
    }
    if (relatedComponent != null && !relatedComponent.isEmpty()) {
        Iterator<IComponent> iter = relatedComponent.iterator();
        while (iter.hasNext()) {
            IComponent component = iter.next();
            // proposalList.add(new ComponentContentProposal(component.getName(), component.getLongName(),
            // component));
            proposalList.add(new ComponentContentProposal(component));
        }
    }
    /**
         * Always add Note
         */
    //$NON-NLS-1$
    DummyComponent noteComponent = new DummyComponent("Note");
    noteComponent.setIcon16(ImageProvider.getImageDesc(ECoreImage.NOTE_SMALL_ICON));
    //$NON-NLS-1$
    noteComponent.setOriginalFamilyName("Misc");
    proposalList.add(new ComponentContentProposal(noteComponent));
    return proposalList.toArray(new IContentProposal[0]);
}
Also used : PaletteComponentFactory(org.talend.designer.core.ui.editor.PaletteComponentFactory) DummyComponent(org.talend.designer.core.model.components.DummyComponent) IComponent(org.talend.core.model.components.IComponent) CreationFactory(org.eclipse.gef.requests.CreationFactory) PaletteEntry(org.eclipse.gef.palette.PaletteEntry) TalendCreationToolEntry(org.talend.core.ui.component.TalendCreationToolEntry)

Example 2 with PaletteComponentFactory

use of org.talend.designer.core.ui.editor.PaletteComponentFactory in project tdi-studio-se by Talend.

the class TalendPaletteContextMenuProvider method buildContextMenu.

@SuppressWarnings("rawtypes")
@Override
public void buildContextMenu(IMenuManager menu) {
    super.buildContextMenu(menu);
    boolean hasSearchComponentAction = true;
    List editParts = getPaletteViewer().getSelectedEditParts();
    if (!editParts.isEmpty()) {
        PaletteEntry element = (PaletteEntry) ((EditPart) editParts.get(0)).getModel();
        if (editParts.size() > 1) {
            // search component only process one .
            hasSearchComponentAction = false;
        } else {
            // check the entry is component or folder
            if (element instanceof CombinedTemplateCreationEntry) {
                Object template = ((CombinedTemplateCreationEntry) element).getTemplate();
                if (template == null || !Node.class.equals(template)) {
                    hasSearchComponentAction = false;
                }
            } else {
                // not component entry
                hasSearchComponentAction = false;
            }
        }
        // don't work for camel.
        if (hasSearchComponentAction && isComponentsTypePalette(ComponentCategory.CATEGORY_4_CAMEL)) {
            hasSearchComponentAction = false;
        }
        // note
        //$NON-NLS-1$
        boolean note = element.getLabel().equals(Messages.getString("TalendEditorPaletteFactory.Note"));
        if (!note) {
            if (hasSearchComponentAction) {
                menu.appendToGroup(GEFActionConstants.MB_ADDITIONS, new SearchComponentAction(getPaletteViewer()));
            }
            boolean showFavorAction = true;
            boolean showAddFavorAction = true;
            PaletteContainer pContainer = element.getParent();
            if (pContainer != null) {
                // Favorites Folder or components in Favorites Folder
                if ((pContainer instanceof PaletteRoot && TalendEditorPaletteFactory.FAVORITES.equals(element.getLabel())) || (pContainer.getParent() instanceof PaletteRoot && TalendEditorPaletteFactory.FAVORITES.equals(pContainer.getLabel()))) {
                    showAddFavorAction = false;
                }
            }
            // for INPUT/OUTPUT/TRIGGER, needn't to add to Favorites
            if (element instanceof CreationToolEntry) {
                Object obj = ((CreationToolEntry) element).getToolProperty(CreationTool.PROPERTY_CREATION_FACTORY);
                if (obj instanceof PaletteComponentFactory) {
                    IComponent component = ((PaletteComponentFactory) obj).getComponent();
                    EComponentType componentType = component.getComponentType();
                    if (componentType == EComponentType.JOBLET_INPUT_OUTPUT || componentType == EComponentType.JOBLET_TRIGGER) {
                        showFavorAction = false;
                    }
                }
            }
            if (showFavorAction) {
                // if (ShowFavoriteAction.state == true) {
                if (showAddFavorAction) {
                    menu.appendToGroup(GEFActionConstants.GROUP_COPY, new FavoriteComponentAction(getPaletteViewer()));
                } else {
                    menu.appendToGroup(GEFActionConstants.GROUP_COPY, new RemoveFavoriteComponentAction(getPaletteViewer()));
                }
            }
        }
    }
    menu.appendToGroup(GEFActionConstants.GROUP_COPY, new HiddenFloderAction(getPaletteViewer()));
    menu.appendToGroup(GEFActionConstants.GROUP_COPY, new DisplayFloderAction(getPaletteViewer()));
}
Also used : PaletteRoot(org.eclipse.gef.palette.PaletteRoot) PaletteComponentFactory(org.talend.designer.core.ui.editor.PaletteComponentFactory) IComponent(org.talend.core.model.components.IComponent) PaletteEntry(org.eclipse.gef.palette.PaletteEntry) PaletteContainer(org.eclipse.gef.palette.PaletteContainer) EComponentType(org.talend.core.model.components.EComponentType) CreationToolEntry(org.eclipse.gef.palette.CreationToolEntry) ArrayList(java.util.ArrayList) List(java.util.List) CombinedTemplateCreationEntry(org.eclipse.gef.palette.CombinedTemplateCreationEntry)

Example 3 with PaletteComponentFactory

use of org.talend.designer.core.ui.editor.PaletteComponentFactory in project tdi-studio-se by Talend.

the class TalendEditorComponentCreationAssist method createComponent.

protected Object createComponent(IComponent component, org.eclipse.swt.graphics.Point location) {
    if (component == null) {
        return null;
    }
    Object newNode;
    /*
         * TODO support to insert the component on Connection
         */
    Event e = new Event();
    e.x = location.x;
    e.y = location.y;
    e.button = 1;
    e.count = 1;
    e.stateMask = 0;
    e.widget = graphicControl;
    MouseEvent mouseEvent = new MouseEvent(e);
    TalendAssistantCreationTool creationTool = new TalendAssistantCreationTool(new PaletteComponentFactory(component));
    newNode = creationTool.getCreateRequest().getNewObject();
    if (!canCreateAt(newNode, new Point(e.x, e.y))) {
        return null;
    }
    creationTool.mouseMove(mouseEvent, graphicViewer);
    graphicViewer.getEditDomain().setActiveTool(creationTool);
    graphicViewer.getEditDomain().mouseMove(mouseEvent, graphicViewer);
    graphicViewer.getEditDomain().mouseDown(mouseEvent, graphicViewer);
    graphicViewer.getEditDomain().mouseUp(mouseEvent, graphicViewer);
    return newNode;
}
Also used : PaletteComponentFactory(org.talend.designer.core.ui.editor.PaletteComponentFactory) MouseEvent(org.eclipse.swt.events.MouseEvent) FocusEvent(org.eclipse.swt.events.FocusEvent) Event(org.eclipse.swt.widgets.Event) KeyEvent(org.eclipse.swt.events.KeyEvent) MouseEvent(org.eclipse.swt.events.MouseEvent) Point(org.eclipse.draw2d.geometry.Point)

Aggregations

PaletteComponentFactory (org.talend.designer.core.ui.editor.PaletteComponentFactory)3 PaletteEntry (org.eclipse.gef.palette.PaletteEntry)2 IComponent (org.talend.core.model.components.IComponent)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Point (org.eclipse.draw2d.geometry.Point)1 CombinedTemplateCreationEntry (org.eclipse.gef.palette.CombinedTemplateCreationEntry)1 CreationToolEntry (org.eclipse.gef.palette.CreationToolEntry)1 PaletteContainer (org.eclipse.gef.palette.PaletteContainer)1 PaletteRoot (org.eclipse.gef.palette.PaletteRoot)1 CreationFactory (org.eclipse.gef.requests.CreationFactory)1 FocusEvent (org.eclipse.swt.events.FocusEvent)1 KeyEvent (org.eclipse.swt.events.KeyEvent)1 MouseEvent (org.eclipse.swt.events.MouseEvent)1 Event (org.eclipse.swt.widgets.Event)1 EComponentType (org.talend.core.model.components.EComponentType)1 TalendCreationToolEntry (org.talend.core.ui.component.TalendCreationToolEntry)1 DummyComponent (org.talend.designer.core.model.components.DummyComponent)1