I seldom post but this posting touched home on some development I have already 
addressed.  I see a need to ensure that some aspects of style control be carried over 
or included in future revision.  Specifically let me list my major concerns:

First, Jetspeeds default.css includes a very cryptic list of class references for 
style control.  Most are inherent to the control of the Jetspeed appearance but most 
of the existing classes are very obscure and it is not immediately apparent what they 
control. As a result I have been pruning existing classes and establishing a clearer 
hierarchy.  Below is an example snippet however I realize this is completely up to the 
developer for control.  I mention it simply so that you might consider establishing 
clearer naming conventions for Jetspeed specific classes.  One important note however 
is that I am establishing individual CSS documents for each skin.

######  default.css SAMPLE

.Portal { }
.Portal-Header {
   background-color: #000000;   
   }
.Portal-Header-Logo {
   text-align: left;
   vertical-align: top;
   width: 100%;
   }
.Portal-Header-Navbar {
   margin: 0px 0px 0px 0px;
   padding: 0px 0px 0px 0px;
   border: 0px;
   text-align: right;
   }
.Portal-Header-Navbar-Button {
   border: none;
   text-align: right;
   }
.Portal-Header-Buttonbar {
   padding: 5px 0px 0px 0px;
   border: none;
   text-align: right;
        }
.Portal-Header-Buttonbar-Button {
   border: 0px;
   text-align: right;   
        }
.Portal-Header-Authentication {
   background-color: #87ACD6;
   text-align: right;
   }
.Portal-Header-Authentication-Field {
   padding: 1px 1px 1px 1px;
   color: #000000;
   font-family: Arial, Verdana, Helvetica;
   font-size: 80%;
   font-weight: 600;
   text-align: right;
   }
.Portal-Menu { }
.Portal-Portlet-Titlebar
   {
   padding: 0px 0px 3px 3px;
   border: 1px 1px 1px 1px solid #000000;
        background-image: url(../../images/blue-gold/scanline_light.gif);
        background-repeat: repeat-x;
   color: #000000;
   font-weight: 900;
   }
.Portal-Portlet-Titlebar-Actions
   {
   background-color: #CCCC99;
   padding: 2px 3px 1px 3px;   
   border: 1px 0px 1px 1px solid #000000;
   }
.Portal-Portlet { }
.Portal-Footer { 
   background-color: #87ACD6;
   color: #000000;
   font-family: Arial, Verdana, Helvetica;
   font-size: 90%;
   font-weight: 400;
   text-align: center;
   }

Second, There has been a bit of discussion as to addressing only .gif images.  Scott's 
proposal is far more ideal as it allows any web image format.  I support that 
recommendation completely as jpgs are necessary for compressed photo quality images.  
I believe actions are a small part of image control in a skin.  The ability to control 
the users complete experience through a skin is limitless.  One difference to my 
implementation is that not only do I allow the skin to control the appearance of 
certain aspects of the portal but I have built beneath the images directory individual 
directories for each Skin theme.  (images/gold-black/default.css or 
images/blue-gold/default.css).  Inside each directory I can have a completely unique 
library of images so that even down to the logo, navigation, action images, etc... I 
can change the complete appearance of the site beyond just background colors, borders, 
etc...

I have eliminated most references to style within the skins.xreg, instead we have 
established effective style through CSS documents and we refer to a library of class 
references to handle the page presentation from the vm or jsp pages.

######  Skin.xreg

    <skin-entry name="gold-black" hidden="false">
        <property name="skin-name" value="gold-black" hidden="true"/>
        <property name="title-style-class" value="TitleStyleClass" hidden="false"/>
        <property name="highlight-title-style-class"
            value="HighlightTitleStyleClass" hidden="false"/>
        <property name="controller-style-class"
            value="ControllerStyleClass" hidden="false"/>
        <property name="portlet-style-class" value="PortletStyleClass" hidden="false"/>
        <property name="content-style-class" value="ContentStyleClass" hidden="false"/>
        <property name="tab-style-class" value="TabStyleClass" hidden="false"/>
        <property name="tab-title-style-class"
            value="TabTitleStyleClass" hidden="false"/>
        <property name="tab-content-style-class"
            value="TabContentStyleClass" hidden="false"/>
    </skin-entry>


These CSS classes are then referenced by the associated VM documents such as top.vm or 
top.jsp... An example follows:

######  top.vm

<div>
#if ($!{data.profile.document.portlets.skin.name} != "null")
    #set ($skinName = "$!{data.profile.document.portlets.skin.name}")
#else
    #set ($skinName = $config.getString("services.PortalToolkit.default.skin"))
#end
#if ($data.User.hasLoggedIn())
<TABLE>
   <TR>
      <TD class="Portal-Header-Logo"><IMG 
SRC="images/$skinName/fnmoc_home_banner_metoc.jpg" /></TD>
      <TD>
         <TABLE class="Portal-Header-Navbar" cellspacing="0" cellpadding="0">
            <TR>
               <TD class="Portal-Header-Navbar-Button">
                  <!-- CUSTOMIZE HTML BUTTON -->
                  <A HREF="$link.setAction("controls.Customize")?reset=on&level=top">
                     <IMG BORDER="0" ALT="Customize HTML" 
SRC="images/$skinName/edit_html.jpg" />
                  </A>
               </TD>


Likewise the css can be unique for each skin as follows in the layouts\html\default.vm:

######  default.vm

<HTML>
  <HEAD>
    <base href="$clink.External" />
    #if ($!{data.profile.document.portlets.skin.name} != "null")
        #set ($skinName = "$!{data.profile.document.portlets.skin.name}")
    #else
        #set ($skinName = $config.getString("services.PortalToolkit.default.skin"))
    #end
    <link href="$clink.setURI("css/$skinName/default.css").Absolute" type="text/css" 
rel="stylesheet" /> 
    #set ($titlePrefix = $config.getString("portalpage.title_prefix"))
    <title>#if ($titlePrefix)$titlePrefix 
#end$!{data.profile.document.portlets.getMetaInfo().title}</title>
  </HEAD>

 
I am happy to see that Skins are an issue warranting futher development by the 
Jetspeed developers.  The old addage "Better to Look Good than to Feel Good" has a 
great deal of merit to the public.  People will always favor aesthics over 
functionality when it comes to end users. But Fuctionality coupled closely with 
aesthetics is always destined for a successful future.

If you have any other questions regarding anything I have mentioned please feel free 
to contact me.  Thank you for your consideration.

V/R,


Kevin Shultz

"The difference between 'involvement' and 'commitment' is like an eggs-and-ham 
breakfast:
the chicken was 'involved' - the pig was 'committed'." 
     - unknown

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to