protected void modelChanged() { super.modelChanged(); MComponentInstance coi = (MComponentInstance) getOwner(); if (coi == null) return; String nameStr = ""; if (coi.getName() != null) { nameStr = coi.getName().trim(); } // construct bases string (comma separated) String baseStr = ""; Collection col = coi.getClassifiers(); if (col != null && col.size() > 0) { Iterator it = col.iterator(); baseStr = ((MClassifier) it.next()).getName(); while (it.hasNext()) { baseStr += ", " + ((MClassifier) it.next()).getName(); } } if (_readyToEdit) { if (nameStr == "" && baseStr == "") _name.setText(""); else _name.setText(nameStr.trim() + " : " + baseStr); } Dimension nameMin = _name.getMinimumSize(); Rectangle r = getBounds(); setBounds(r.x, r.y, r.width, r.height); updateStereotypeText(); }
/** Return a Fig that can be used to represent the given edge */ public FigEdge getFigEdgeFor(GraphModel gm, Layer lay, Object edge) { if (edge instanceof MDependency) { MDependency dep = (MDependency) edge; FigDependency depFig = new FigDependency(dep); MModelElement supplier = (MModelElement) ((dep.getSuppliers().toArray())[0]); MModelElement client = (MModelElement) ((dep.getClients().toArray())[0]); FigNode supFN = (FigNode) lay.presentationFor(supplier); FigNode cliFN = (FigNode) lay.presentationFor(client); depFig.setSourcePortFig(cliFN); depFig.setSourceFigNode(cliFN); depFig.setDestPortFig(supFN); depFig.setDestFigNode(supFN); depFig.getFig().setLayer(lay); depFig.getFig().setDashed(true); return depFig; } if (edge instanceof MAssociation) { MAssociation asc = (MAssociation) edge; FigAssociation ascFig = new FigAssociation(asc, lay); Collection connections = asc.getConnections(); if (connections == null) System.out.println("null connections...."); Object[] connArray = connections.toArray(); MAssociationEnd fromEnd = (MAssociationEnd) connArray[0]; MClassifier fromCls = (MClassifier) fromEnd.getType(); MAssociationEnd toEnd = (MAssociationEnd) connArray[1]; MClassifier toCls = (MClassifier) toEnd.getType(); FigNode fromFN = (FigNode) lay.presentationFor(fromCls); FigNode toFN = (FigNode) lay.presentationFor(toCls); ascFig.setSourcePortFig(fromFN); ascFig.setSourceFigNode(fromFN); ascFig.setDestPortFig(toFN); ascFig.setDestFigNode(toFN); ascFig.getFig().setLayer(lay); return ascFig; } return null; }