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]);
}
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()));
}
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;
}
Aggregations