/*
  * @see org.argouml.cognitive.ui.Wizard#canFinish()
  */
 public boolean canFinish() {
   if (!super.canFinish()) {
     return false;
   }
   if (getStep() == 0) {
     return true;
   }
   if (getStep() == 1 && step1 != null && step1.getSelectedIndex() != -1) {
     return true;
   }
   if (getStep() == 2 && step2 != null && step2.getSelectedIndex() != -1) {
     return true;
   }
   return false;
 }
 /*
  * @see org.argouml.cognitive.ui.Wizard#doAction(int)
  */
 public void doAction(int oldStep) {
   LOG.debug("doAction " + oldStep);
   int choice = -1;
   ToDoItem item = (ToDoItem) getToDoItem();
   ListSet offs = item.getOffenders();
   switch (oldStep) {
     case 1:
       if (step1 != null) {
         choice = step1.getSelectedIndex();
       }
       if (choice == -1) {
         throw new Error("nothing selected, should not get here");
       }
       selectedCls = offs.elementAt(choice);
       break;
       ////////////////
     case 2:
       if (step2 != null) {
         choice = step2.getSelectedIndex();
       }
       if (choice == -1) {
         throw new Error("nothing selected, should not get here");
       }
       Object ae = null;
       Iterator iter = Model.getFacade().getAssociationEnds(selectedCls).iterator();
       for (int n = 0; n <= choice; n++) {
         ae = iter.next();
       }
       selectedAsc = Model.getFacade().getAssociation(ae);
       break;
       ////////////////
     case 3:
       if (selectedAsc != null) {
         List conns = new ArrayList(Model.getFacade().getConnections(selectedAsc));
         Object ae0 = conns.get(0);
         Object ae1 = conns.get(1);
         try {
           Model.getCoreHelper().setAggregation(ae0, Model.getAggregationKind().getNone());
           Model.getCoreHelper().setAggregation(ae1, Model.getAggregationKind().getNone());
         } catch (Exception pve) {
           LOG.error("could not set aggregation", pve);
         }
       }
       break;
   }
 }