// Return a collection of common actions.
  // Each action in the collection is a compound
  // action. There is one compound action in the collection
  // for each action which is common to all viewlets in the selection.
  public Collection getCommonActions() {
    Collection commonActions = new LinkedList();
    Collection firstViewletsActions;
    ViewletAction currentAction;
    Iterator viewletsIterator;
    Iterator firstViewletsActionsIterator;
    Viewlet firstViewlet, currentViewlet;
    List currentViewletActions;
    boolean allContainAction;

    if (isEmpty()) {
      return (Collections.EMPTY_SET);
    }
    firstViewlet = (Viewlet) (iterator().next());
    firstViewletsActions = firstViewlet.getActions();
    firstViewletsActionsIterator = firstViewletsActions.iterator();

    // for each currentAction in the first viewlet's actions
    while (firstViewletsActionsIterator.hasNext()) {
      currentAction = (ViewletAction) firstViewletsActionsIterator.next();
      viewletsIterator = iterator();
      allContainAction = true;
      // test whether each viewlet has an action equals() to currentAction
      while (viewletsIterator.hasNext() && allContainAction) {
        currentViewlet = (Viewlet) viewletsIterator.next();
        if (!currentViewlet.getActions().contains(currentAction)) {
          allContainAction = false;
        }
      }
      if (allContainAction) {
        commonActions.add(currentAction.createCompoundAction(this));
      }
    }
    return (commonActions);
  }
  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();
  }
示例#3
0
  private TreeModel buildModel(Object[] resolvers) {
    TreeModel fullModel = null;
    DefaultMutableTreeNode top = new DefaultMutableTreeNode(Tr.t("root"));

    try {
      cpos = null;
      for (Object resolver : resolvers) {
        if (resolver instanceof ColorPository) {
          cpos = (ColorPository) resolver;
          GraphCellRenderer graphCellRenderer = new GraphCellRenderer(cpos);
          colors.setCellRenderer(graphCellRenderer);
          break;
        }
      }
      Collection<ColorPository.ClassRecord> classes = cpos.getClasses();
      String[] classNames = new String[classes.size()];
      Iterator<ColorPository.ClassRecord> it = classes.iterator();
      int count = 0;
      while (it.hasNext()) {
        classNames[count] = it.next().name;
        count++;
      }
      Arrays.sort(classNames);

      for (String className : classNames) {
        ColorPository.ColorRecord[] colors = cpos.enumerateColors(className);
        String[] colorNames = new String[colors.length];
        for (int a = 0; a < colorNames.length; a++) {
          colorNames[a] = colors[a].name;
        }
        Arrays.sort(colorNames);

        DefaultMutableTreeNode tn = new DefaultMutableTreeNode(className);
        top.add(tn);
        for (String colorName : colorNames) {
          tn.add(new DefaultMutableTreeNode(colorName));
        }
      }

      fullModel = new DefaultTreeModel(top);
    } catch (Exception e) {
      fullModel = new DefaultTreeModel(new DefaultMutableTreeNode(Tr.t("root.failed")));
      // e.printStackTrace();
    }
    return fullModel;
  }