use of org.eclipse.gef.EditPart in project tdi-studio-se by Talend.
the class XmlMapOutputZoneToolBar method addTable.
/*
* (non-Javadoc)
*
* @see org.talend.designer.newabstractmap.figures.treetools.zone.OutputZoneToolBar#addTable()
*/
@Override
protected void addTable() {
final OutputXmlTree createOutputXmlTree = XmlmapFactory.eINSTANCE.createOutputXmlTree();
CommandStack commandStack = externalPart.getViewer().getEditDomain().getCommandStack();
commandStack.execute(new Command() {
@Override
public void execute() {
if (externalPart.getViewer() instanceof XmlMapGraphicViewer) {
XmlMapGraphicViewer viewer = (XmlMapGraphicViewer) externalPart.getViewer();
MapperManager manager = viewer.getMapperManager();
String outputName = manager.getMapperUI().openNewOutputCreationDialog();
if (outputName == null) {
return;
}
createOutputXmlTree.setName(outputName);
externalData.getOutputTrees().add(createOutputXmlTree);
MetadataTable metadataTable = new MetadataTable();
metadataTable.setLabel(outputName);
metadataTable.setTableName(outputName);
mapperComponent.getMetadataList().add(metadataTable);
mapperComponent.getProcess().addUniqueConnectionName(outputName);
int indexOf = externalPart.getModelChildren().indexOf(createOutputXmlTree);
if (indexOf != -1) {
externalPart.getViewer().select((EditPart) externalPart.getChildren().get(indexOf));
}
if (!min_size.isEnabled()) {
min_size.setEnabled(true);
}
// check problem for created output incase input main is multiloop
mapperManger.getProblemsAnalyser().checkProblems(createOutputXmlTree);
mapperManger.getMapperUI().updateStatusBar();
}
}
});
}
use of org.eclipse.gef.EditPart in project tdi-studio-se by Talend.
the class XmlMapOutputZoneToolBar method removeTable.
/*
* (non-Javadoc)
*
* @see org.talend.designer.newabstractmap.figures.treetools.zone.OutputZoneToolBar#removeTable()
*/
@Override
protected void removeTable() {
CommandStack commandStack = graphicViewer.getEditDomain().getCommandStack();
commandStack.execute(new Command() {
@Override
public void execute() {
OutputXmlTreeEditPart currentSelectedOutputXmlTree = graphicViewer.getFiguresManager().getCurrentSelectedOutputTable();
if (currentSelectedOutputXmlTree != null) {
OutputXmlTree outputTree = (OutputXmlTree) currentSelectedOutputXmlTree.getModel();
int indexOf = externalPart.getModelChildren().indexOf(outputTree);
mapperComponent.getProcess().removeUniqueConnectionName(outputTree.getName());
removeMetadataTableByName(outputTree.getName());
for (OutputTreeNode treeNode : outputTree.getNodes()) {
XmlMapUtil.detachConnectionsSouce(treeNode, externalData);
}
externalData.getOutputTrees().remove(outputTree);
XmlMapUtil.detachFilterSource(outputTree, externalData);
indexOf = indexOf - 1;
if (indexOf > -1 && (EditPart) externalPart.getChildren().get(indexOf) instanceof OutputXmlTreeEditPart) {
graphicViewer.select((EditPart) externalPart.getChildren().get(indexOf));
} else if (indexOf > -1 && indexOf + 1 < externalPart.getChildren().size() && (EditPart) externalPart.getChildren().get(indexOf + 1) instanceof OutputXmlTreeEditPart) {
graphicViewer.select((EditPart) externalPart.getChildren().get(indexOf + 1));
} else {
mapperManger.getMapperUI().getTabFolderEditors().getOutputMetaEditorView().setMetadataTableEditor(null);
}
mapperManger.getProblemsAnalyser().clearProblemsForTree(outputTree);
mapperManger.getMapperUI().updateStatusBar();
}
if (externalData.getOutputTrees().isEmpty() && min_size.isEnabled()) {
min_size.setEnabled(false);
}
}
});
}
use of org.eclipse.gef.EditPart in project tdi-studio-se by Talend.
the class TalendTabbedPropertySheetPage method selectionChanged.
@Override
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
ISelection newSelection;
if (part instanceof AbstractMultiPageTalendEditor) {
AbstractMultiPageTalendEditor mpte = (AbstractMultiPageTalendEditor) part;
newSelection = mpte.getTalendEditor().getViewer().getSelection();
if (selection instanceof StructuredSelection) {
StructuredSelection structSel = (StructuredSelection) newSelection;
if (structSel.size() != 1) {
return;
}
if (structSel.getFirstElement() instanceof EditPart) {
if (structSel.equals(oldSelection)) {
// if (getCurrentTab() != null) {
// getCurrentTab().setInput(part, selection);
// }
} else {
super.selectionChanged(part, selection);
}
oldSelection = structSel;
}
}
} else if (part instanceof ContentOutline) {
ContentOutline outline = (ContentOutline) part;
newSelection = outline.getSelection();
if (selection instanceof StructuredSelection) {
StructuredSelection structSel = (StructuredSelection) newSelection;
if (structSel.size() != 1) {
return;
}
if (structSel.getFirstElement() instanceof NodeTreeEditPart) {
if (structSel.equals(oldSelection)) {
// this.getCurrentTab().setInput(part, selection);
} else {
super.selectionChanged(part, selection);
}
oldSelection = structSel;
}
}
}
}
use of org.eclipse.gef.EditPart in project tdi-studio-se by Talend.
the class TalendSelectionManager method appendSelection.
/*
* (non-Javadoc)
*
* @see org.eclipse.gef.SelectionManager#appendSelection(org.eclipse.gef.EditPart)
*/
@Override
public void appendSelection(EditPart arg0) {
// judge whether the refresh operation is executed.
// see bug 3315.
boolean needRefresh = false;
if (getSelection() instanceof StructuredSelection) {
StructuredSelection selection = (StructuredSelection) getSelection();
Object selected = null;
for (Object element : selection.toArray()) {
selected = element;
}
if (getSelection().isEmpty() || (selected instanceof ProcessPart)) {
this.selectionType = ETalendSelectionType.SINGLE;
needRefresh = true;
}
if (!(arg0 instanceof NodeLabelEditPart) && !(arg0 instanceof ConnLabelEditPart) && !(arg0 instanceof ConnectionPart)) {
// removes old selections of labels by calling setSelection
for (Object element : selection.toArray()) {
if (element instanceof NodeLabelEditPart) {
this.deselect(((AbstractGraphicalEditPart) element));
} else if (element instanceof ConnLabelEditPart) {
this.deselect(((AbstractGraphicalEditPart) element));
} else if (element instanceof ConnectionPart) {
this.deselect(((AbstractConnectionEditPart) element));
}
}
needRefresh = true;
}
if (arg0 instanceof ConnectionPerformanceEditPart && getSelectPoint() != null) {
if (needRefresh) {
EditPart transferPart = transferFocus((ConnectionPerformanceEditPart) arg0);
if (transferPart == null) {
needRefresh = false;
setSelectPoint(null);
return;
}
super.appendSelection(transferPart);
needRefresh = false;
return;
}
}
if (needRefresh) {
super.appendSelection(arg0);
needRefresh = false;
setSelectPoint(null);
}
}
}
use of org.eclipse.gef.EditPart in project tdi-studio-se by Talend.
the class TalendDrawerEditPart method createFigure.
@Override
@SuppressWarnings("restriction")
public IFigure createFigure() {
EditPart module = getParent();
if (module instanceof TalendDrawerEditPart) {
TalendDrawerEditPart parent = (TalendDrawerEditPart) getParent();
childLevel = parent.childLevel + 1;
} else {
childLevel = 0;
}
//$NON-NLS-1$
getViewer().getControl().setData("ANIMATE", Boolean.FALSE);
TalendDrawerFigure fig = new TalendDrawerFigure(getViewer().getControl(), childLevel, cssStyleSetting) {
@Override
IFigure buildTooltip() {
return createToolTip();
}
};
//$NON-NLS-1$
getViewer().getControl().setData("ANIMATE", Boolean.TRUE);
fig.setExpanded(getDrawer().isInitiallyOpen());
fig.setPinned(getDrawer().isInitiallyPinned());
fig.getCollapseToggle().addFocusListener(new FocusListener.Stub() {
@Override
public void focusGained(FocusEvent fe) {
getViewer().select(TalendDrawerEditPart.this);
}
});
return fig;
}
Aggregations