}
}
}
if (g == null) {
Package sp = XMLUtil.getPackage(lastSel);
if (sp != null) {
List wps = sp.getWorkflowProcesses().toElements();
if (wps.size() != 0) {
g = getGraph((XMLCollectionElement) wps.get(0));
}
}
}
if (g != selectedGraph) {
setSelectedGraph(g);
}
if (selectedGraph != null) {
selectedGraph.clearSelection();
}
// ***************************** end of find graph
// **************************** select elements
WorkflowElement selectedElement = null;
WorkflowElement lastSelected = null;
if (selectedGraph != null) {
List selectedElements = new ArrayList();
List overviewElements = new ArrayList();
List toCheck = new ArrayList();
if (changedElements == null || changedElements.size() == 0) {
toCheck.add(changedElement);
} else {
toCheck.addAll(changedElements);
}
for (Iterator it = toCheck.iterator(); it.hasNext();) {
XMLElement el = (XMLElement) it.next();
selectedElement = selectedGraph.getGraphInterface(el);
if (overview != null && selectedElement != null && !(selectedElement instanceof GraphTransitionInterface)) {
overviewElements.add(selectedElement);
}
if (selectedElement != null) {
lastSelected = selectedElement;
selectedElements.add(selectedElement);
}
}
selectedGraph.selectElements(selectedElements.toArray(), true, true);
if (overview != null) {
overview.getGraph().selectElements(overviewElements.toArray(), true, true);
}
}
if (lastSelected != null) {
selectedGraph.scrollCellToVisible(lastSelected);
}
}
// ********************************* END OF SELECTION EVENT
} else {
if (changedElement instanceof Package && (action == XMLElementChangeInfo.INSERTED || action == XMLElementChangeInfo.REMOVED)) {
List toHandle = new ArrayList();
if (changedElements != null) {
toHandle.addAll(changedElements);
}
if (changedElements.size() == 0) {
toHandle.add(changedElement);
}
Package mainPkg = JaWEManager.getInstance().getJaWEController().getMainPackage();
boolean adjustOtherPkgs = !toHandle.contains(mainPkg);
for (int i = 0; i < changedElements.size(); i++) {
Package pkg = (Package) changedElements.get(i);
if (action == XMLElementChangeInfo.INSERTED) {
insertPackage(pkg);
} else if (action == XMLElementChangeInfo.REMOVED) {
removePackage(pkg);
}