StandardDisplayNameGenerator.java :  » Workflow-Engines » JaWE » org » enhydra » jawe » base » display » Java Open Source

Java Open Source » Workflow Engines » JaWE 
JaWE » org » enhydra » jawe » base » display » StandardDisplayNameGenerator.java
package org.enhydra.jawe.base.display;

import java.lang.reflect.Method;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.enhydra.jawe.JaWEComponent;
import org.enhydra.jawe.JaWEManager;
import org.enhydra.jawe.Settings;
import org.enhydra.jawe.base.label.LabelGenerator;
import org.enhydra.jawe.base.xpdlhandler.XPDLHandler;
import org.enhydra.shark.utilities.SequencedHashMap;
import org.enhydra.shark.xpdl.XMLAttribute;
import org.enhydra.shark.xpdl.XMLBaseForCollectionAndComplex;
import org.enhydra.shark.xpdl.XMLCollection;
import org.enhydra.shark.xpdl.XMLCollectionElement;
import org.enhydra.shark.xpdl.XMLComplexChoice;
import org.enhydra.shark.xpdl.XMLComplexElement;
import org.enhydra.shark.xpdl.XMLElement;
import org.enhydra.shark.xpdl.XMLEmptyChoiceElement;
import org.enhydra.shark.xpdl.XMLSimpleElement;
import org.enhydra.shark.xpdl.XMLUtil;
import org.enhydra.shark.xpdl.elements.*;
import org.enhydra.shark.xpdl.elements.Package;

/**
 *  Used to generate strings for graphical representation of all XPDL entities.
 *
 *  @author Sasa Bojanic
 */
public class StandardDisplayNameGenerator implements DisplayNameGenerator {
  
   protected DisplayNameGeneratorSettings settings;
  
   public StandardDisplayNameGenerator () {
      settings = new DisplayNameGeneratorSettings();
      settings.init((JaWEComponent) null);
   }
   
   public StandardDisplayNameGenerator(DisplayNameGeneratorSettings settings) {
      this.settings = settings;
      this.settings.init((JaWEComponent) null);
   }
   
   public String getDisplayName(Activities el) {
      return generateStandardDisplayName(el);
   }
   
   public String getDisplayName(Activity el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ActivitySet el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ActivitySets el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ActivityTypes el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ActualParameter el) {
      WorkflowProcess wp=XMLUtil.getWorkflowProcess(el);
      Map vars=XMLUtil.getPossibleVariables(wp);
      String vId=el.toValue();
      if (!vId.equals("")) {
         XMLCollectionElement dfOrFp=(XMLCollectionElement)vars.get(vId);
         if (dfOrFp!=null) {
            return getDisplayName(dfOrFp);
         }
      }
      return vId;      
   }

   public String getDisplayName(ActualParameters el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Application el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Applications el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ApplicationTypes el) {
      return generateStandardDisplayName(el);
   }
   
   public String getDisplayName(ArrayType el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Author el) {
      return generateStandardDisplayName(el);
   }


   public String getDisplayName(Automatic el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(BasicType el) {
      return JaWEManager.getInstance().getLabelGenerator().getLabel(el);
   }

   public String getDisplayName(BlockActivity el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Codepage el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Condition el) {
      return el.toValue();
   }

   public String getDisplayName(ConformanceClass el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Cost el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(CostUnit el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Countrykey el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Created el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(DataField el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(DataFields el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(DataType el) {
      return getDisplayName(el.getDataTypes());
   }

   public String getDisplayName(DataTypes el) {
      //return generateStandardDisplayName(el);
      XMLBaseForCollectionAndComplex ch=(XMLBaseForCollectionAndComplex)el.getChoosen();
      LabelGenerator lg=JaWEManager.getInstance().getLabelGenerator();      
      String disp=lg.getLabel(ch);
      if (ch instanceof BasicType) {
         disp+=" -> "+ settings.getLanguageDependentString(((BasicType)ch).getType() + "Key");
      } else if (ch instanceof DeclaredType) {
         String tdId=((DeclaredType)ch).getId();
         TypeDeclaration td=null;
         if (el.getParent() instanceof TypeDeclaration) {
            td=((TypeDeclarations)el.getParent().getParent()).getTypeDeclaration(tdId);
         } else {
            td =XMLUtil.getPackage(el).getTypeDeclaration(tdId);
         }
         disp+=" -> "+getDisplayName(td);
      }
      return disp;
   }

   public String getDisplayName(Deadline el) {
      return el.getDeadlineCondition();
   }

   public String getDisplayName(DeadlineCondition el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Deadlines el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(DeclaredType el) {
      LabelGenerator lg=JaWEManager.getInstance().getLabelGenerator();      
      return lg.getLabel(el);
      //return generateStandardDisplayName(el);
   }

   public String getDisplayName(Description el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Documentation el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Duration el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(EnumerationType el) {
      return JaWEManager.getInstance().getLabelGenerator().getLabel(el);
   }

   public String getDisplayName(EnumerationValue el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ExceptionName el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ExtendedAttribute el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ExtendedAttributes el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ExternalPackage el) {
      //return generateStandardDisplayName(el);
      return el.getHref();
   }

   public String getDisplayName(ExternalPackages el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ExternalReference el) {
      return JaWEManager.getInstance().getLabelGenerator().getLabel(el);
   }

   public String getDisplayName(FinishMode el) {
      return generateStandardDisplayName(el.getStartFinishModes());
   }

   public String getDisplayName(FormalParameter el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(FormalParameters el) {
      if (el.getParent() instanceof XMLComplexChoice) {
         return JaWEManager.getInstance().getLabelGenerator().getLabel(el);
      } 
      return String.valueOf(el.size());      
   }

   public String getDisplayName(Icon el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Implementation el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ImplementationTypes el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(InitialValue el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Join el) {
       return generateStandardDisplayName(el.getTypeAttribute());
   }

   public String getDisplayName(Length el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Limit el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ListType el) {
       return generateStandardDisplayName(el);
   }

   public String getDisplayName(Manual el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Member el) {
      return getDisplayName(el.getDataTypes());
   }

   public String getDisplayName(Namespace el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Namespaces el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(No el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(org.enhydra.shark.xpdl.elements.Package el) {
      return generateStandardDisplayName(el);
   }
   
   public String getDisplayName(PackageHeader el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Participant el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Participants el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ParticipantType el) {
      return generateStandardDisplayName(el.getTypeAttribute());
   }

   public String getDisplayName(Performer el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Priority el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(PriorityUnit el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ProcessHeader el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(RecordType el) {
      return JaWEManager.getInstance().getLabelGenerator().getLabel(el);
   }

   public String getDisplayName(RedefinableHeader el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Responsible el) {
      WorkflowProcess wp=XMLUtil.getWorkflowProcess(el);
      Package pkg=XMLUtil.getPackage(el);
      XPDLHandler xpdlh=JaWEManager.getInstance().getXPDLHandler();
      Map ps=null;
      if (wp!=null) {
         ps=XMLUtil.getPossibleParticipants(wp, xpdlh);
      } else if (pkg!=null) {
         ps=XMLUtil.getPossibleParticipants(pkg, xpdlh);
      }
      String pId=el.toValue();
      if (ps!=null && !pId.equals("")) {
         Participant p=(Participant)ps.get(pId);
         if (p!=null) {
            return getDisplayName(p);
         }
      }
      return pId;
   }

   public String getDisplayName(Responsibles el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Route el) {
      return JaWEManager.getInstance().getLabelGenerator().getLabel(el);
   }

   public String getDisplayName(SchemaType el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Script el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(SimulationInformation el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Split el) {
      return generateStandardDisplayName(el.getTypeAttribute());
   }

   public String getDisplayName(StartFinishModes el) {
      return generateStandardDisplayName(el.getChoosen());
   }

   public String getDisplayName(StartMode el) {
      return generateStandardDisplayName(el.getStartFinishModes());
   }

   public String getDisplayName(SubFlow el) {
      return JaWEManager.getInstance().getLabelGenerator().getLabel(el);
   }

   public String getDisplayName(TimeEstimation el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Tool el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Tools el) {
      return JaWEManager.getInstance().getLabelGenerator().getLabel(el);
   }

   public String getDisplayName(Transition el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(TransitionRef el) {
      return getDisplayName(el.get("Id"));
   }

   public String getDisplayName(TransitionRefs el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(TransitionRestriction el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(TransitionRestrictions el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Transitions el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(TypeDeclaration el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(TypeDeclarations el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(UnionType el) {
      return JaWEManager.getInstance().getLabelGenerator().getLabel(el);
   }

   public String getDisplayName(ValidFrom el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(ValidTo el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Vendor el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(Version el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(WaitingTime el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(WorkflowProcess el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(WorkflowProcesses el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(WorkingTime el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(XPDLVersion el) {
      return generateStandardDisplayName(el);
   }

   
   public String getDisplayName(XMLAttribute el) {
      if (el.getParent() instanceof Transition && (el.toName().equals("From") || el.toName().equals("To"))) {
         XMLCollectionElement wpOrAs=XMLUtil.getActivitySet(el);
         if (wpOrAs==null) {
            wpOrAs=XMLUtil.getWorkflowProcess(el);
         }
         SequencedHashMap pas=getPossibleActivities(wpOrAs);
         Activity act=(Activity)pas.get(el.toValue());
         if (act!=null) {
            return generateStandardDisplayName(act);
         }
      } else if (el.getParent() instanceof TransitionRef) {
         XMLCollectionElement wpOrAs=XMLUtil.getActivitySet(el);
         if (wpOrAs==null) {
            wpOrAs=XMLUtil.getWorkflowProcess(el);
         }
         Transitions tras=(Transitions)wpOrAs.get("Transitions");
         Transition tra=tras.getTransition(el.toValue());
         if (tra!=null) {
            SequencedHashMap pas=getPossibleActivities(wpOrAs);
            Activity act=(Activity)pas.get(tra.getTo());
            if (act!=null) {
               return generateStandardDisplayName(act);
            }    
         }
      }
      return generateStandardDisplayName(el);
   }

   public String getDisplayName (XMLEmptyChoiceElement el) {
      String v=el.toValue();
//      try {
//         v=settings.getLanguageDependentString(v+"Key");
//         System.out.println("LDS for "+el.toValue()+"Key is "+v);
//         if (v==null) {
//            v=el.toValue();
//         }
//      } catch (Exception ex) {
//         System.out.println("Failed getting LDS for "+el.toValue()+"Key");
//         v=el.toValue();
//      }
      return v;
   }

   public String getDisplayName (XMLComplexChoice el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(XMLCollection el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(XMLCollectionElement el) {
      return generateStandardDisplayName(el);
   }
   
   public String getDisplayName(XMLComplexElement el) {
      return generateStandardDisplayName(el);
   }

   public String getDisplayName(XMLSimpleElement el) {
      return generateStandardDisplayName(el);
   }
   
   public String getDisplayName (XMLElement el) {
      try {
         Class cl = el.getClass();           
         Method m = null;
         try {
            m = this.getClass().getMethod("getDisplayName", new Class[] { cl } );
         } catch (Exception ex) {
            if (!(
                  cl==XMLSimpleElement.class || 
                  cl==XMLAttribute.class || 
                  cl==XMLComplexChoice.class ||
                  cl==XMLComplexElement.class ||
                  cl==XMLCollectionElement.class ||
                  cl==XMLCollection.class)) {
               if (XMLComplexChoice.class.isAssignableFrom(cl)) {
                  cl=XMLComplexChoice.class;
               } else if (XMLAttribute.class.isAssignableFrom(cl)) {
                  cl=XMLAttribute.class;
               } else if (XMLSimpleElement.class.isAssignableFrom(cl)) {
                  cl=XMLSimpleElement.class;
               } else if (XMLComplexElement.class.isAssignableFrom(cl)) {
                  cl=XMLComplexElement.class;
               } else if (XMLCollection.class.isAssignableFrom(cl)) {
                  cl=XMLCollection.class;
               }
            }             
         }
         m = this.getClass().getMethod("getDisplayName", new Class[] { cl } );
//          System.err.println("calling "+m.toString());
         return (String) m.invoke(this, new Object[] { el });
      } catch (Throwable e) {
          e.printStackTrace();
      }
      
      return generateStandardDisplayName(el);
   }
   
   public String generateStandardDisplayName (XMLElement el) {
      String disp="";
      if (el instanceof XMLCollection) {
         disp=String.valueOf(((XMLCollection)el).size());
      } else if (el instanceof XMLComplexElement) {
         XMLElement nme=((XMLComplexElement)el).get("Name");
         if (nme!=null) {
            disp=nme.toValue();
         }
         if (disp.equals("")) {
            XMLElement id=((XMLComplexElement)el).get("Id");
            if (id!=null) {
               disp=id.toValue();
            }
         }
         if (disp.equals("")) {
            disp=JaWEManager.getInstance().getLabelGenerator().getLabel(el);
         }
      } else if (el instanceof XMLComplexChoice) {
         disp=getDisplayName(((XMLComplexChoice)el).getChoosen());
      } else if (el instanceof XMLAttribute && ((XMLAttribute)el).getChoices()!=null){
         disp= settings.getLanguageDependentString(el.toValue()+"Key");
         if  (disp==null || disp.equals("")) {
            disp=el.toValue();
         }
      } else {
         disp=el.toValue();
      }      
      return disp;
   }
   
   public DisplayNameGeneratorSettings getSetting() {
      return settings;
   }
   
   public Settings getSettings () {
      return settings;
   }
   
   public SequencedHashMap getPossibleActivities (XMLCollectionElement wpOrAs) {
      SequencedHashMap toRet=new SequencedHashMap();
      List acts=((Activities)wpOrAs.get("Activities")).toElements();
      Iterator it=acts.iterator();
      while (it.hasNext()) {
         Activity act=(Activity)it.next();
         toRet.put(act.getId(),act);
      }
      return toRet;
   }

   
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.