Child pages
  • Development-Examples-Path Inspector
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

First of, it's handy to add a convenience method to your "page" component to define this "list" of objects:

  protected void addObjectToPathComponents(Object anObject, String aPageName, Object aTitle) {

   if ( anObject != null ) {
     Map  aMap = new HashMap();

     aMap.put( Path.ObjectKey, anObject );
     aMap.put( Path.PageNameKey, aPageName );
     aMap.put( Path.TitleKey, aTitle );

     this.pathComponents().add( aMap );

     return;
   }

   throw new IllegalArgumentException ( "Page.addObjectWithPageNameAndTitleToPath: null object.");
 }

Now, in each concrete page you could initialize the path components:

protected void initPathComponents()
 {
   Envelope  anEnvelope = this.value();
   Date    aDate = anEnvelope.creationDate();
   List    aList = anEnvelope.list();

   this.addObjectToPathComponents( aDate, "Timeline", "TIMELINE" );
   this.addObjectToPathComponents( aDate );

   if ( aList != null )
   {
     this.addObjectToPathComponents( aList );
   }

   this.addObjectToPathComponents( anEnvelope );
 }

Finally, the path component itself could look like this:

  <webobject name = "IsMain">
    <webobject name = "MainLink"><webobject name = "MainLabel"></webobject></webobject>
  </webobject>

  <webobject name = "IsNotMain">
    <webobject name = "Components">
      <webobject name = "HasPrefix"> <webobject name = "Prefix"></webobject> </webobject><webobject name = "Component"></webobject>
    </webobject>

    <webobject name = "HasPrefix"> <webobject name = "Prefix"></webobject> </webobject><webobject name = "LastComponent"></webobject>
  </webobject>
Components: WORepetition
 {
   count = count;
   index = index;
 };
 IsMain: WOConditional{
   condition = isMain;
 };
 IsNotMain: WOConditional{
   condition = isMain;
   negate = true;
 };
 ainLink: WOHyperlink{
   action = getMail;
   title = "get new mail";
 };
 MainLabel: SpanString{
   value = "get mail";
   isSmall = true;
   isUpperCase = true;
   //isBold = true;
   class = "Label";
   length = 30;
 };

 HasPrefix: WOConditional{
   condition = hasPrefix;
 };
 Prefix: WOImage{
   src = prefixUrl;
   border = 0;
   align = "middle";
 };
 Component: Link{
   value = component.object;
   description = component.title;
   altDescription = component.title;
   value = component.object;
   pageName = component.pageName;
   isUpperCase = true;
   isSmall = true;
   //isBold = true;
   class = "Label";
 };
 LastComponent: SpanString{
   value = lastComponentTitle;
   isSmall = true;
   isUpperCase = true;
   //isBold = true;
   class = "Label";
   length = 30;
 }; 

That's all folks.

  • No labels