Skinning an extended Skinnable Container

Hi,
I'm currently re-developping my website with the new Flex 4 SDK. I'm facing something weird :
I built a new panel, based on a skinnabled container. A couple of tweaking for the skin, and voilà, a nice look and feel !
But I'd like to add some more functionnalities : close and refresh button on the right and a toolbar in the middle. So, following what Peter Dehaan posted on his blog, I came up with the following class :
    public class RoundPanel extends SkinnableContainer
        [SkinPart(required="true")]
        public var titleField:TextGraphicElement;
        [SkinPart(required="true")]
        public var headerGroup:Group;
        private var _title:String;
        public function get title():String
            return _title;
        public function set title(v:String):void
            _title = v;
            if (titleField) {
                titleField.text = title;
        private var _headerContent:Array;
        [ArrayElementType("mx.core.IVisualElement")]
        public function get headerContent():Array
            return _headerContent;
        public function set headerContent(v:Array):void
            _headerContent = v;
            if (headerGroup) {
                headerGroup.removeAllElements();
                var idx:int;
                var len:int = v.length;
                for (idx = 0; idx <len; idx++) {
                    headerGroup.addElement(v[idx]);
        public function RoundPanel()
            super();
        override protected function partAdded(partName:String, instance:Object) : void
            super.partAdded(partName, instance);
            if (instance == headerGroup) {
                if (headerGroup) {
                    headerGroup.removeAllElements();
                    var idx:int;
                    var len:int = _headerContent.length;
                    for (idx = 0; idx < len; idx++) {
                        headerGroup.addElement(_headerContent[idx]);
            if (instance == titleField) {
                titleField.text = title;
        override protected function partRemoved(partName:String, instance:Object) : void
            if (instance == headerGroup) {
                if (headerGroup) {
                    headerGroup.removeAllElements();
            super.partRemoved(partName, instance);
And its skin :
<s:Skin
    xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/halo" xmlns:components="components.*">
    <s:states>
        <s:State name="normal" />
        <s:State name="disabled" />
    </s:states>
    <fx:Metadata>
        [HostComponent("components.RoundPanel")]
    </fx:Metadata>
    <s:Rect id="background" left="0" right="0" top="0" bottom="0" radiusX="5" radiusY="5" >
        <s:stroke>
            <s:SolidColorStroke color="#555555" />
        </s:stroke>
        <s:fill>
            <s:LinearGradient rotation="90" >
                <s:GradientEntry color="0xFFFFFF" />
                <s:GradientEntry color="0xE8E8E8" />
            </s:LinearGradient>
        </s:fill>           
    </s:Rect>
    <s:Group left="10" top="2">
        <s:layout>
            <s:HorizontalLayout gap="15" />
        </s:layout>
        <s:SimpleText id="titleField" lineBreak="explicit"
            height="30"    verticalAlign="middle" fontWeight="bold">
        </s:SimpleText>
        <s:HGroup gap="0" height="30" id="headerGroup" verticalAlign="middle"/>
    </s:Group>   
    <s:Group id="contentGroup" top="35" width="100%" height="100%" minWidth="0" minHeight="0">
        <s:layout>
            <s:VerticalLayout paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10" />
        </s:layout>
    </s:Group>
</s:Skin>
I instantiate the component in the main app :
<components:RoundPanel title="Round Panel" id="panel"
        skinClass="skins.RoundPanelSkin" width="400" height="200">
        <components:headerContent>
            <mx:Label text="HELLO" />
            <mx:Label text="THE" />
            <mx:Label text="WORLD" />
        </components:headerContent>
        <mx:Label text="Bonjour le monde" />
</components:RoundPanel>
But I don't get WHY the label "Bonjour le monde" does not show up as the contentGroup of the component.
Any ideas ?

I'm having the same problem.
Each time I declare a class member as being a "SkinPart" I no longer receive SkinnableContainer's, Group instance (contentGroup) in my overridden "partAdded" method. If I comment out the [SkinPart] metatag in my class, contentGroup shows up and so does the content I've added.
I'm using the same builds as DevSigning and experienced the same netmon issue as well (not a big deal). Friday's build (10146) had issues even resolving SkinnableContainer so that was a no-go.
Can anyone else share their experience extending SkinnableContainer?
[UPDATE: After implementing the fix shown in the last comment here: http://forums.adobe.com/message/2007571#2007571 , I was able to get SkinTypes working properly. I should also mention that there are occasions when content would show properly without the fix in place. Could it be some sort of strange timing issue? In the interim, I would recommend simply adding the fix to each class that extends SkinnableContainer.]

Similar Messages

  • Setting a stroke style on a Skinnable container?

    I have a SkinnablerContainer skin that I made using the "new skin from copy".  I've got it working with the fill properties included, but I'd also like to add some control for stroke.  I did this, but the component instance says "Cannot resolve attribute 'borderWeight' for component type spark.components.SkinnableContainer".
    <fx:Script fb:purpose="styling">
        <![CDATA[        
             *  @private
            override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number) : void
                bgFill.color = getStyle("backgroundColor");
                bgFill.alpha = getStyle("backgroundAlpha");
                   bgStroke.color = getStyle("borderColor");
                   bgStroke.weight = getStyle("borderWeight");
                super.updateDisplayList(unscaledWidth, unscaledHeight);
        ]]>       
    </fx:Script>
    <s:states>
        <s:State name="normal" />
        <s:State name="disabled" />
    </s:states>
    <s:Rect left="0" right="0" top="0" bottom="0" radiusX="12">
        <s:fill>
            <s:SolidColor id="bgFill"/>
        </s:fill>
         <s:stroke>
              <s:SolidColorStroke id="bgStroke"/>
         </s:stroke>
    </s:Rect>

    OK, so what component could I use that supports a borderColor? 
    Also, in the past I have "made up" my own styles:
    <s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
              minWidth="21" minHeight="21"
              alpha.disabled="0.5">
         <fx:Metadata>
              [HostComponent("spark.components.Button")]
         </fx:Metadata>
         <fx:Script>          
              [Bindable] private var tColor:uint;
              [Bindable] private var tColorOver:uint;
              [Bindable] private var tColorDown:uint;
              [Bindable] private var tColorDisabled:uint = 0xCCCCCC;
              override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
                   bgcolor.color = getStyle("backgroundColor");
                   bgcolorover.color = getStyle("backgroundOverColor");
                   bgcolordown.color = getStyle("backgroundDownColor");
                   tColor = getStyle("color");
                   tColorOver = getStyle("colorOver");
                   tColorDown = getStyle("colorDown");
                   super.updateDisplayList(unscaledWidth, unscaledHeight);
         </fx:Script>
         <s:Rect top="0" left="0" right="0" bottom="0" radiusX="6" radiusY="6">
              <s:filters>
                   <s:BevelFilter strength=".3" distance="2" blurX="4" blurY="4"/>
              </s:filters>
              <s:filters.down>
                   <s:BevelFilter strength=".3" distance="-2" blurX="4" blurY="4"/>
              </s:filters.down>
              <s:fill>
                   <s:SolidColor id="bgcolor" />
              </s:fill>
              <s:fill.over>
                   <s:SolidColor id="bgcolorover" />
              </s:fill.over>
              <s:fill.down>
                   <s:SolidColor id="bgcolordown" />
              </s:fill.down>
         </s:Rect>
    Why does it work here?  Or does this only support css and not mxml?

  • Custom Component Not Updating Display List

    Hi all... I've created a component which is basically a meter (extends skinnable container). The skin to the component contains two rectangles (background and the actual meter).  This component receives an arraycollection with the following fields value, max and min(the arraycollection I am passing is Bindable). When I initialize and pass the data to be used to draw It works great (keep in mind - only works the first time).  I've created a button that changes the data array and shows the current meter value.  Apparently the meter's value is changing everytime I modify the ArrayCollection I've set to be used for rendering.(dont want to say "dataProvider" because it is not a Flex dataprovider, just a variable )... here is the code...
       public class meter extends SkinnableContainer {
            [SkinPart( required = "true" )]
            public var meter:spark.primitives.Rect;
            [SkinPart( required = "true" )]
            public var meterBackground:spark.primitives.Rect;
            private var _dataProvider:ArrayCollection;
            private var _renderDirty:Boolean = false;
            public function Meter() {
                super();
            public function set dataProvider( value:Object ):void {
                if ( value )
                    if(value is ArrayCollection)
                           _renderDirty = true;
                        _dataProvider = value as ArrayCollection;
                    if(_dataProvider)
                        _dataProvider.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, propertyChanged);//used both eventlisteners but none actually ever fire off
                        _dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE,collectionChanged);
                    invalidateDisplayList();//only happens the first time
            private function collectionChanged(event:CollectionEvent):void
                Alert.show("In collection Change");//this never goes off when I change the "dataProvider"
                _renderDirty = true;
                invalidateDisplayList();
            private function propertyChanged(event:PropertyChangeEvent):void
                Alert.show("In property Change");//this never goes off when I change the "dataProvider"
                _renderDirty=true;
                 invalidateDisplayList();
            public function get dataProvider():Object {
                return _dataProvider;
            override protected function updateDisplayList( unscaledWidth:Number, unscaledHeight:Number ):void {
                if(_dataProvider))
                var span:Number = unscaledWidth / _dataProvider[0].max;
                var meterWidth:Number = _dataProvider[0].value * span;
                meter.width = meterWidth;
                _renderDirty = false;
    And this is the mxml code where I change the "value" field....
    <fx:Script>
    <![CDATA[
    [Bindable]
                private var meterData:ArrayCollection = new ArrayCollection([               
                    {value:80, max:100, min:0}
                protected function mySlider_changeHandler(event:Event):void
                    meterData[0].value = Math.round(mySlider.value)*10;               
                protected function button1_clickHandler(event:MouseEvent):void
                    // TODO Auto-generated method stub
                    var array:ArrayCollection = testMeter.dataProvider as ArrayCollection;
                    var value:Number = array[0].value as Number;
                    Alert.show(value.toString());
                   // testMeter.meter.width= Math.random()*100;
            ]]>//initial value in "meterData" does get drawn...but when it's changed with the slider..nothing happens..
           <custom:Meter id="testMeter" dataProvider="{meterData}" />
            <s:HSlider id="mySlider"
                       liveDragging="true"
                       dataTipPrecision="0"
                       change="mySlider_changeHandler(event)"
                       value="3"/>
            <s:Button click="button1_clickHandler(event)"/>
    Can you help me figure out what's going on??Thanks guys!!!

    Hi.
    Now there are some serious bugs in your code:
    Put a call to super.updateDisplayList(unscaledWidth, unscaledHeight) in your overriden method (or some funky things will start happening or it won't work at all).
    Why don't you check your _renderDirty flag in the updateDisplayList() method? You should do that (personally I would go with commitProperties() instead but it's not much of a difference I guess)
    And now the reason why your events don't fire is that because you use plain objects (just generic istances of Object). Those are not IEventDispatchers and therefore do not fire any events when you change any of the properties (which are all dynamic by the way). You have to define a custom value object class which extends the EventDispatcher (or you can implement IEventDispatcher on your own). So instead of this:[Bindable]
    private var meterData:ArrayCollection = new ArrayCollection([
       {value:80, max:100, min:0}
    You should do something like this:[Bindable]
    private var meterData:ArrayCollection = new ArrayCollection([
       new MyValueObject(80, 100, 0)
    Where MyValueObject could look like this:// this instructs MXML compiler to automaticly implement IEventDispatcher
    // and make all public properties bindable
    [Bindable]
    public class MyValueObject
       public function MyValueObject(value:Number, max:Number, min:Number) {
          this.value = value;
          this.max = max;
          this.min = min;
       public var value:Number;
       public var max:Number;
       public var min:Number;

  • Unable to extend FusionFX skin

    Dear All,
    I am having trouble implementing my own skin functionality.
    I wanted to extend the fusionFx skin family so I decided to create a skin file like this
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <skins xmlns="http://myfaces.apache.org/trinidad/skin">
      <skin>
        <id>customSkin.desktop</id>
        <family>CustomSkin</family>
        <extends>fusionFx</extends>
        <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
        <style-sheet-name>skins/custom-skin.css</style-sheet-name>
      </skin>
    </skins>But when I run the above code, I am seeing error in my WLS and the components doesnt render right.
    <SkinUtils> <_sortSkinNodesWithExtensions> The following skins extend each other in a circular fashion or the skin they extend does not exist.
    Skin with id: customSkin.desktop extends skin with id: fusionFx
    <SkinUtils> <_addSkinToFactory> Unable to locate base skin "fusionFx" for use in defining skin of id "customSkin.desktop", family "CustomSkin", renderkit ID "org.apache.myfaces.trinidad.desktop". Using the default base skin "simple.desktop".I tried changing the extends family with the blafplus, but this one works. But I dont want to extend this skin rather the FusionFX only
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <skins xmlns="http://myfaces.apache.org/trinidad/skin">
      <skin>
        <id>customSkin.desktop</id>
        <family>CustomSkin</family>
        <extends>blafplus-rich.desktop</extends>
        <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
        <style-sheet-name>skins/custom-skin.css</style-sheet-name>
      </skin>
    </skins>Any hints please?

    Hi,
    This should work,
    <extends>fusionFx-v1.desktop</extends>Regards,
    Santosh
    Edited by: Santosh Vaza on Jun 10, 2011 12:43 PM

  • Skinning / Extending Panel

    Hi,
    I'm looking to skin or extend the panel so that I can have
    things such as a close button in the title bar, and so that the
    panel's resizeable. What's the best way to do this? If I extend the
    panel, how do I go about this? since my components are in
    <mx:panel/> 's
    Thanks :)

    Hello:
    You need to override the createChildren method to do this.
    This is just an example but is similar to the method I use. If you
    are adding many components then you would want to break out each
    components configurations into their own methods or your
    createChildren() method will get quite long. Or even better create
    a custombutton class in advance that extends the Button Class and
    use it.
    Example:
    private var panelTB:UIComponent;
    private var myCloseButton:Button = new Button();
    override protected function createChildren():void {
    super.createChildren();
    //make yourself a reference to the titlebar
    this.panelTB = super.titleBar;
    //Your components go here, Example:
    this.myCloseButton.width = 25;
    this.myCloseButton.height = 25;
    this.myCloseButton.styleName = "myCloseButtonStyle";
    //Add your objects (a button in this case to the referenced
    titlebar
    this.panelTB.addChild(this.myCloseButton);
    this.positionTBChildren();
    The positionTBChildren method would then set the X,Y of the
    button based on your desired location and needs.
    Hope that helps.
    -Joe

  • Extending Mist FX Skin

    I have a requirement to extend 'Mist FX' on WebCenter Spaces and customize the error/warning message using bundle.
    Would it be possible to extend 'Mist FX' skin without coping the content from whitefx.css?
    trinidad-skins.xml content for custom skin look like,
    <skin>
    <id>own.mistfx.custom.desktop</id>
    <family>Own-MistFX</family>
    <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
    <style-sheet-name>custom/spaces/skins/sni-mistfx/own-mistfx.css</style-sheet-name>
    <extends>whitefx.desktop</extends>
    <bundle-name>bundles.OwnSkinMsgBundle</bundle-name>
    </skin>
    Currently own-mistfx.css doesn't override anything from mist fx. And bundles.OwnSkinMsgBundle will have customized message like
    public Object[][] getContents()
    return new Object[][]
    { "af_message.TIP_FATAL", "Warning" },
    { "af_messages.TIP_FATAL", "Warning" },
    { "af_message.TIP_ERROR", "Warning" },
    { "af_messages.TIP_ERROR", "Warning" },
    { "af_document.LABEL_SPLASH_SCREEN",
    "Please wait, the page is loading..." }, };
    Main requirement, do not want to copy whitefx.css content to custom one. I have to update the custom css file whenever apply patch or upgrade, which is not easy to maintain.
    Please advice.
    Thanks
    JP

    Useful discussion. We are trying something similar - i.e introducing a new skin that extends an existing one; namely Mist FX (i.e whitefx).
    Our trinidad-skins.xml in our customisation project looks like:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <skins xmlns="http://myfaces.apache.org/trinidad/skin">
    <!-- Start of DO-NOT-MODIFY section -->
    <skin>
    <id>webcenter.desktop</id>
    <family>webcenter</family>
    <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
    <style-sheet-name>adf/spaces/skins/additions/webcenter-skin-additions.css</style-sheet-name>
    <extends>blafplus-rich.desktop</extends>
    </skin>
    <skin>
    <id>webcenter-fusion.desktop</id>
    <family>webcenter-fusion</family>
    <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
    <style-sheet-name>adf/spaces/skins/fusion/fusion.css</style-sheet-name>
    <extends>fusion.desktop</extends>
    </skin>
    <!-- End of DO-NOT-MODIFY section-->
    <!-- Custom Skins -->
    <skin>
    <id>new-2011-a.custom.desktop</id>
    <family>new-2011-a</family>
    <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
    <style-sheet-name>custom/spaces/skins/new/new.css</style-sheet-name>
    <extends>whitefx.desktop</extends>
    </skin>
    </skins>
    ...and although we are seeing our customised colours etc, we are not seeing any of our replacement images. It seems to work a bit if we extend fusion.desktop instead of whitefx,desktop
    Very strange - as if the generated CSS classes differ between skins.
    Trinidad is a bugger of a thing...

  • Extend container in action condition

    Hi,
    We need to extend the container in the action conditions (CRM).
    We have to take an attribute of a customer (for instance status of customer, for example VIP), and we need to add this field to the conditions of the action to be taken into account.
    I found the badi CONTEXT_EXTEND_PPF, but I do not know how would I do to add a new field to be taken.
    Thanks in advanced, because we need to treat the service orders of VIP Customers different from the rest.
    Fernando

    Hi Fernando
    That is correct the note I gave you is for Business Objects.
    What is your exact requirement.
    My assumption was when a transaction is created for a VIP customer then an action must be trigerred.
    If this is true then you need to do the following.
    1. using EEW create a field .
    2.Populate this field from the customer master into the transaction.
    3.Implement the note 816456.
    4. the field will then appear in the action condition table.
    You can trigger the action then for VIP customers.
    If this is not the scenarion then please let me know.
    Hope this helps.
    By the way please reward if this helps.
    Thanks

  • Deployment crash / change done was applying customs skins

    I created a new skin to extend fusion.desktop and configure it into my application. After that i got this error when executing in embedded wls.
    IntegratedWebLogicServer started.
    [Running application iEducation on Server Instance IntegratedWebLogicServer...]
    [09:26:21 PM] ---- Deployment started. ----
    [09:26:21 PM] Target platform is (Weblogic 10.3).
    [09:26:22 PM] Retrieving existing application information
    [09:26:23 PM] Running dependency analysis...
    [09:26:23 PM] Deploying 2 profiles...
    [09:26:24 PM] Wrote Web Application Module to C:\Users\michel\AppData\Roaming\JDeveloper\system11.1.1.2.36.55.36\o.j2ee\drs\iEducation\FlexParameterViewControllerWebApp.war
    [09:26:24 PM] Wrote Enterprise Application Module to C:\Users\michel\AppData\Roaming\JDeveloper\system11.1.1.2.36.55.36\o.j2ee\drs\iEducation
    [09:26:24 PM] Deploying Application...
    <25 févr. 2010 21.26. h CET> <Warning> <Deployer> <BEA-149124> <Failures were detected while initiating deploy task for application 'iEducation'. Error is: '[Deployer:149164]The domain edit lock is owned by another session in exclusive mode - hence this deployment operation cannot proceed.'>
    [09:26:25 PM] #### Deployment incomplete. ####
    [09:26:25 PM] Remote deployment failed (oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer)
    #### Cannot run application iEducation due to error deploying to IntegratedWebLogicServer.
    [Application iEducation stopped and undeployed from Server Instance IntegratedWebLogicServer]
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
             version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
      <context-param>
        <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        <param-value>client</param-value>
      </context-param>
      <context-param>
        <description>If this parameter is true, there will be an automatic check of the modification date of your JSPs, and saved state will be discarded when JSP's change. It will also automatically check if your skinning css files have changed without you having to restart the server. This makes development easier, but adds overhead. For this reason this parameter should be set to false when your application is deployed.</description>
        <param-name>org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION</param-name>
        <param-value>true</param-value>
      </context-param>
      <context-param>
        <description>Whether the 'Generated by...' comment at the bottom of ADF Faces HTML pages should contain version number information.</description>
        <param-name>oracle.adf.view.rich.versionString.HIDDEN</param-name>
        <param-value>false</param-value>
      </context-param>
      <filter>
        <filter-name>JpsFilter</filter-name>
        <filter-class>oracle.security.jps.ee.http.JpsFilter</filter-class>
        <init-param>
          <param-name>enable.anonymous</param-name>
          <param-value>true</param-value>
        </init-param>
      </filter>
      <filter>
        <filter-name>trinidad</filter-name>
        <filter-class>org.apache.myfaces.trinidad.webapp.TrinidadFilter</filter-class>
      </filter>
      <filter>
        <filter-name>adfBindings</filter-name>
        <filter-class>oracle.adf.model.servlet.ADFBindingFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>JpsFilter</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
      </filter-mapping>
      <filter-mapping>
        <filter-name>trinidad</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>
      </filter-mapping>
      <filter-mapping>
        <filter-name>adfBindings</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>REQUEST</dispatcher>
      </filter-mapping>
      <listener>
        <listener-class>oracle.adf.mbean.share.connection.ADFConnectionLifeCycleCallBack</listener-class>
      </listener>
      <listener>
        <listener-class>oracle.adf.mbean.share.config.ADFConfigLifeCycleCallBack</listener-class>
      </listener>
      <listener>
        <listener-class>oracle.bc4j.mbean.BC4JConfigLifeCycleCallBack</listener-class>
      </listener>
      <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet>
        <servlet-name>resources</servlet-name>
        <servlet-class>org.apache.myfaces.trinidad.webapp.ResourceServlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>BIGRAPHSERVLET</servlet-name>
        <servlet-class>oracle.adfinternal.view.faces.bi.renderkit.graph.GraphServlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>BIGAUGESERVLET</servlet-name>
        <servlet-class>oracle.adfinternal.view.faces.bi.renderkit.gauge.GaugeServlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>MapProxyServlet</servlet-name>
        <servlet-class>oracle.adfinternal.view.faces.bi.renderkit.geoMap.servlet.MapProxyServlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>GatewayServlet</servlet-name>
        <servlet-class>oracle.adfinternal.view.faces.bi.renderkit.graph.FlashBridgeServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>resources</servlet-name>
        <url-pattern>/adf/*</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>resources</servlet-name>
        <url-pattern>/afr/*</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>BIGRAPHSERVLET</servlet-name>
        <url-pattern>/servlet/GraphServlet/*</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>BIGAUGESERVLET</servlet-name>
        <url-pattern>/servlet/GaugeServlet/*</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>MapProxyServlet</servlet-name>
        <url-pattern>/mapproxy/*</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>resources</servlet-name>
        <url-pattern>/bi/*</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>GatewayServlet</servlet-name>
        <url-pattern>/flashbridge/*</url-pattern>
      </servlet-mapping>
      <jsp-config>
        <jsp-property-group>
          <url-pattern>*.jsff</url-pattern>
          <is-xml>true</is-xml>
        </jsp-property-group>
      </jsp-config>
    </web-app>
    <?xml version="1.0" encoding="windows-1252"?>
    <trinidad-config xmlns="http://myfaces.apache.org/trinidad/config">
      <skin-family>flex</skin-family>
    </trinidad-config>
    <?xml version="1.0" encoding="UTF-8" ?>
    <skins xmlns="http://myfaces.apache.org/trinidad/skin">
      <skin>
        <id>flex.base</id>
        <family>flex</family>
        <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id>
        <extends>fusion.desktop</extends>
        <style-sheet-name>css/flex-fusion-extension.css</style-sheet-name>
        <!--
        <translation-source>
        </translation-source>-->
        <!--
        <bundle-name>
        </bundle-name>-->
      </skin>
      <skin-addition>
        <skin-id></skin-id>
        <style-sheet-name></style-sheet-name>
        <!--
        <translation-source>
        </translation-source>-->
        <!--
        <bundle-name>
        </bundle-name>-->
      </skin-addition>
    </skins>flex-fusion-extension.css
    .af_resetButton {
      padding-left: 5.0px;
      padding-right: 5.0px;
      padding-bottom: 3.0px;
    }

    goto console and click the button "Activate Changes" on the left side. This should resolve your issue.
    or
    stop the server and search for the .lok file under your server directory.

  • Skin is drawing on top of components

    I have a skin with HostComponent of SkinnableContainer. It looks like this:
    <s:BitmapImage source="@Embed(source='/img/skinGraphics/footer.png')" />
        <s:Group id="contentGroup">
        </s:Group>
    The skinnable container looks like this:
    <s:SkinnableContainer>
         <s:HGroup width="1000">
            <s:HGroup width="100%"  height="100%" top="4" horizontalAlign="left" id="leftBtnGroup"/>   
            <s:HGroup height="100%" top="4" horizontalAlign="right" id="rightBtnGroup" />
        </s:HGroup>
    </s:SkinnableContainer>
    I dynamically add some buttons to the leftBtnGroup and the rightBtnGroup and they are being drawn behind the footer.png image. What am I doing wrong?
    Thanks..

    The footer is contained within the main view UI like this:
    <s:SkinnableContainer skinClass="skins.BPSApplicationSkinGrey">
            <s:layout>
                <s:VerticalLayout />
            </s:layout>
            <view:TitleBar theModuleTitle="{breadCrumbStr}" top="43" left="0"/>
            <views:TestView id="testView" includeIn="TestView"/>
            <views:TestBrowser id="testBrowser" includeIn="TestBrowser"/>
            <com:Footer id="footer" bottom="8"/>
        </s:SkinnableContainer>
    The buttons are attached on the enterState() function of testBroswer.
    public function enterState():void{
                    btnDelete = new Button();
                    btnDelete.setStyle("skinClass", skins.FooterButtonGreenSkin);
                    btnDelete.addEventListener(MouseEvent.CLICK, deleteBtnClickHandler);
                    parentDocument.footer.addLeftButton(btnDelete);
                    btnDelete.label = "DELETE TEST";
    public function addLeftButton(btn:Button):void{
                    leftBtnGroup.addElement(btn);

  • Flex Builder Design View  programmatic skinning

    I am writing programmatic skins, by extending
    ProgrammaticSkin class. If i apply these skins to mx:Button, i can
    see the skin in Flex Builder design view. But when i style my
    custom component with programmatic skins, Flex Builder design view
    does not show the skin, though the skin is applied when i run the
    application. Is there a way for me to write my custom classes
    (class Node extends UIComponent), and apply skins, so that i can
    see the skins in Flex Builder design view.

    Actually I found the answer to my question. You can find it
    in my blog.
    programmatic
    skinning in Flex Builder Design view

  • How to implement custom skin in JavaFX 2.0?

    To implement custom skin, I extend TextFieldSkin (in com.sun.javafx.scene.control.skin.*) class, but I don't know which methods to overwrite, anyone can provide some sample codes? Thanks!

    Hi,
    You can implement Skin interface or extend SkinBase class. I made some controls on my blog http://jojorabbitjavafxblog.wordpress.com/ but i still have not updated code to build 40. In my opinion the easiest way is to make first skin for Button class for example add text and Rectangle.

  • Using illustrator to create flex skins

    Hi,
    I want to create a border container with only the top right and bottom right corners rounded. I had read somewhere that I can create the image in Adobe Illustrator and somehow use the code in the mxml skin for this border container(using the <path> tags). Any idea how to go about it ? please help!
    Also, can i import psd images i.e .psd files into a flex 4 project ?

    hey thanks a ton! that really helped

  • Flash Playback skins - FullScreenToggle

    Hi,
    I'm using CS3. I've applied a flash skin to my movie
    containing the FullScreenToggle option but it doesn't work.
    I have modified the HTML tab in the publish settings to
    "Flash Only - Allow Full Screen" option and included all relative
    files - flv, swf, js on the server.
    Can anyone help?
    Thanks,

    Aube2020 wrote:
    > Hi,
    > I'm using CS3. I've applied a flash skin to my movie
    containing the
    > FullScreenToggle option but it doesn't work.
    > I have modified the HTML tab in the publish settings to
    "Flash Only - Allow
    > Full Screen" option and included all relative files -
    flv, swf, js on the
    > server.
    >
    Your question is too general.
    Similar to "my car won't start, what could be wrong".
    Please provide URL to the problematic file so we can look for
    first obvious
    errors and if we can't figure it out, we'll need detail
    description of the file
    or source to view for coding errors.
    Best Regards
    Urami
    "Never play Leap-Frog with a Unicorn."
    <urami>
    If you want to mail me - DO NOT LAUGH AT MY ADDRESS
    </urami>

  • 508 Compliant Skins

    Does anybody know where I may get a skin that I can use with
    WebHelp that is section 508 compliant. During generation of the
    Hlp, RoboHelp asks if your application has to be 508 compliant. If
    the box is checked, it will not apply any skins and without skins,
    the Search does not have a text box, where users would be able to
    enter text to search for. I am wondering if some one have developed
    a skin, that is 508 compliant, but has a text box build in the
    Search navigation. Currently the Search is managed via a list of
    links.

    Hi all and welcome to the community prabhatkk
    Ummm, I certainly don't mean to be argumentative, but if you
    look at the output options for WebHelp, you will notice that if you
    choose to enable Section 508 compliancy, the ability to use skins
    is lost. This tells me that skins in and of themselves (or possibly
    by their very nature) don't lend themselves to being compliant.
    When you think about it, it does make sense. Section 508 is
    geared toward disabled individuals. Normally, this means they are
    using screen readers to "display" their browsing experience. All
    those pretty visual elements would be totally lost and wasted on
    someone visually impaired.
    Usually I will recommend generating WebHelp twice to two
    different folders. One folder containing a skinned system and
    another containing the Section 508 compliant system. Then you can
    do one of a couple of things.
    1. Offer a link from the web site that will open either
    version.
    2. Within a skinned WebHelp system, have a link that opens
    the Section 508 compliant version.
    Cheers... Rick

  • Extended Idoc - User exit for delivery VL01 and Invoice VF01

    Hi Experts,
    We are developing Extended Idoc for order - cash cycle.The extended Idoc contains 4 extra fields.
    I want to know the User exits where i can populate the extended segment field values for VL01 and VF01 transactions.

    HI
    exits available for  VL01.
    VMDE0004                                Shipping Interface: Message SDPACK (Packing, Inbound)
    VMDE0003                                Shipping Interface: Message SDPICK (Picking, Inbound)
    VMDE0002                                Shipping Interface: Message PICKSD (Picking, Outbound)
    VMDE0001                                Shipping Interface: Error Handling - Inbound IDoc
    V53W0001                                User exits for creating picking waves
    V53C0002                                W&S: RWE enhancement - shipping material type/time slot
    V53C0001                                Rough workload calculation in time per item
    V50S0001                                User Exits for Delivery Processing
    V50R0004                                Calculation of Stock for POs for Shipping Due Date List
    V50R0002                                Collective processing for delivery creation
    V50R0001                                Collective processing for delivery creation
    V50Q0001                                Delivery Monitor: User Exits for Filling Display Fields
    V50PSTAT                                Delivery: Item Status Calculation
    V02V0004                                User Exit for Staging Area Determination (Item)
    V02V0003                                User exit for gate + matl staging area determination (headr)
    V02V0002                                User exit for storage location determination
    V02V0001                                Sales area determination for stock transport order
    For VF01..
    Enhancement
    V61A0001                                Customer enhancement: Pricing
    V60P0001                                Data provision for additional fields for display in lists
    V60A0001                                Customer functions in the billing document
    V05N0001                                User Exits for Printing Billing Docs. using POR Procedure
    V05I0001                                User exits for billing index
    SDVFX011                                Userexit for the komkcv- and kompcv-structures
    SDVFX010                                User exit item table for the customer lines
    SDVFX009                                Billing doc. processing KIDONO (payment reference number)
    SDVFX008                                User exit: Processing of transfer structures SD-FI
    SDVFX007                                User exit: Billing plan during transfer to Accounting
    SDVFX006                                User exit tax line in transfer to accounting
    SDVFX005                                User exit reserves in transfer to accounting
    SDVFX004                                User exit G/L line in transfer to accounting
    SDVFX003                                User exit cash clearing in transfer to accounting
    SDVFX002                                User exit for A/R line in transfer to accounting
    SDVFX001                                User exit header line in delivery to accounting
    J_3RSINV

Maybe you are looking for