Creating expandable panels in LiveCycle

I am in the middle of creating a dynamic pdf for my customers. I am offering various products and the information I need from my customers varies for every product. However, I would like to have only 1 pdf form that I can send to every customer and within the form, the customer can choose which product he purchased. The pdf should then "adapt" to the customers choice and show the important forms to be filled.
Here´s a quick example: At the beginning of the document, the customer gives his details like name adress etc. This information is neccessary no matter what the product is, but there´s some information that´s only neccesary for certain products. Is it possible to create buttons (i.e. "choose your product") and link them to panels which will then pop up when the corresponding button is clicked?
The only function I´ve found is the expandable text form, but I need whole "panels" to be hidden/visible.
Thanks in advance

Thank you, this is what I was looking for. Now I´ve come across another problem: I´ve placed my forms over eachother so that there´s no gap on the page if somebody checks option 2 instead of option 1. Is there a way to automatically place one form below the other if both options are checked? Best wishes

Similar Messages

  • Create expandable text boxes & maintain Indesign interactive features

    I have a form created in indesign which has interactive buttons included. I exported to pdf and now need to add expandable text boxes. I tried to do this in Livecycle but when i imported the pdf as a flowable form (with a view to make it dynamic) the interactive buttons i had created disappeared. is there a way around this so that i can create expandable text boxes but still maintain the buttons i have created?
    PS i am completely new to Livecycle

    Hi Reggie,
    Here are two versions. One form with a fixed number of pages and the other with a variable number of pages (you can add additional page 1).
    In the fixed number of pages, the click event of the index button includes the following instruction to go to a target page:
    xfa.host.currentPage = 1;
    This works because the page we want is always "1".
    If the form is dynamic and the number of pages can increase (or decrease) from those set at design, then we need to track the actual page number of each target page, at runtime.
    The script in the index button now looks like this:
    xfa.host.currentPage = page2.thisPage.rawValue - 1;
    Here the target page is page2 and on this page we have a field called "thisPage". The instruction is to jump to the current value of thisPage on page 2.
    For each target page that you want to index, you will need a hidden field (thisPage). You need to put this on each page and not on the Master Page.
    Hopefully the examples will help explain this.
    This is how we do it, there probably are other solutions out there.
    In relation to the second part, the link feature in Acrobat will not work with a form developed in LC Designer. Paul has a thread (http://forums.adobe.com/message/1923918#1923918) with a PDF for attaching documents, which were then listed in a list box. This could help you in developing your form.
    Another option is to have a button which becomes visible is there are attachments in the PDF. The click event then shows/hides the attachment panel. The user can then see the attachment and double click on the one they want/need. I know it is not as clean, but it is easier to implement. The javascript for the button would be:
    app.execMenuItem("ShowHideFileAttachment");
    Hope that helps,
    Niall
    the text keeps collapsing...

  • I am creating a form on LiveCycle Designer and I am trying to create a form that has a e-mail submit button.  When the butten is utilized it attaches the form to the e-mail in an plain text .xml format rather than the pdf format.  Is there a quick fix?

    I am creating a form on LiveCycle Designer and I am trying to create a form that has a e-mail submit button.  When the button is utilized it attaches the form to the e-mail in an plain text .xml format rather than the pdf format.  Is there a quick fix?

    Hi,
    You have the choice between xml or pdf, in later versions of designer you can choose with a dropdown on the email button Object palette, the "Submit As";
    In earlier version you had to edit the XML Source and change the format from xml to pdf (or vice-versa);
    Regards
    Bruce

  • Creating PDF forms in LiveCycle Designer 8.0

    I post detail at Software
    nha khoa Group
    Question on a quirk I have noticed when creating a form using LiveCycle Designer 8 and was wondering if there was a way to change this.
    I will use a Text Field for an area where I want the person who will fill out the form to add comments/questions. I widen the box out so the user will have area to type their comments in.
    In the properties of for that Text Field, on the "Object" tab I check the box to allow multiple lines and I limit the length to the visible area.
    That all works fine. The quirk is when I test the form and then click in that area to type for the text field the cursor always starts in the middle of that Text Field area. Is there a way to get the cursor to start at the top of the text box when someone fills out the form?

    Post your question in the LiveCycle Designer forum.

  • How can I create a solution with Livecycle

    I work for a high school and we have about 12 pdfs that we need parents to read/scroll through, then 10 (different) pages that we want them to print, complete and return to the school.  Finally, we want them to see a "Thank you, you have done all you have to do" type screen.  We want to make it as user friendly as possible so I was thinking...
    Reading pages, 1 at a time with next at bottom.
    Click next and it takes them on.  When they get to printing pages 1 print button prints all pages we need them to print. Click next, and it takes them to optional print pages.
    Click next and it says, thank you.
    How can I make this happen if I already have all the pdfs?
    Help please.
    John Dent
    [email protected]

    Thank you soo much.  A few questions?
    They weren't created in designer but could I just import all of them?
    How do "build the structure" for the naviagtion?
    Where/how do you add the script.
    Thanks again,
    John Dent
    Date: Fri, 30 Jul 2010 07:01:08 -0600
    From: [email protected]
    To: [email protected]
    Subject: How can I create a solution with Livecycle
    I assume that all of these PDFs were created in Designer. If so you can add any buttons that you want to appear on every page (Next, Previous) onto the Master page then there is script you can add to the buttons to actual move the pages (xfa.host.pageDown() and xfa.host.pageUp()). The Prin button can be added to the specific page and you can pass the page numbers that you want to print as a parameter to the print command. Lastly when you get to the last page and the click Complete you can display a messageBox with your Thank you message.
    Hope that helps
    Paul
    >

  • How to create collapsible panel in flex3

    I
    How to create Collapsible panel in flex.
    If you observer above image. There are three panels.For ffirst and last panel i have provided one button where it contains open/close button.When user selects close button left panel should collapse to left hand side and the same should come to its original postion. In case of right panel is the same process except it should collapse to right side.
    Below is my code:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()" >
    <mx:Script>
      <![CDATA[
      import flash.net.FileReference;
      import mx.controls.Menu;
      import flash.display.Stage; 
      import mx.events.MenuEvent;
      import mx.controls.Alert;
      import mx.events.ListEvent;
      import mx.managers.DragManager;
            import mx.core.DragSource;
            import mx.events.DragEvent;
      import DrawingClasses.Designer;
      [Bindable]
      [Embed(source="/images2/line.png")]
      public var linePicture:Class;
      [Bindable]
      [Embed(source="/images2/box.png")]
      public var boxPicture:Class;
      [Bindable]
      public var xm:XML =
      <AbstractComponentTemplate></AbstractComponentTemplate>;
      public var compType:XML =
       <ComponentTemplateDescriptor>
        <Owner>BackTesting</Owner>
        <Name>Component</Name>
        <Version>1</Version>
       </ComponentTemplateDescriptor>;
      [Bindable]
            private var cm:ContextMenu; 
      public var xm1:XML;
      public var loopparent:Array = new Array();
      private var mouseTarget:DisplayObject;
      private var xOff:Number;
      private var yOff:Number;
      private var designer:Designer = new Designer();  
      private var i:int;
      private var j:int;
      private function init():void
       designer.setDesignArea(designArea);
       var cmi1:ContextMenuItem = new ContextMenuItem("Properties", true);
                cmi1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, contextMenuItem_propertiesSelect);
       var cmi2:ContextMenuItem = new ContextMenuItem("View XML", true);
       cmi2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, contextMenuItem_viewXMLSelect);
       var cmi3:ContextMenuItem = new ContextMenuItem("Saved Components", true);
       cmi3.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, contextMenuItem_savedListSelect);  
       cm = new ContextMenu();
       cm.hideBuiltInItems();
       cm.customItems = [cmi1, cmi2, cmi3];
       cm.addEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelect);
      private function contextMenu_menuSelect(evt:ContextMenuEvent):void {
      private function contextMenuItem_propertiesSelect(evt:ContextMenuEvent):void {
        accrCon2.label = "Two Way Split - Properties";   
        accrWin.selectedIndex = 1;
      private function contextMenuItem_viewXMLSelect(evt:ContextMenuEvent):void {               
        viewstack1.selectedIndex = 1;
      private function contextMenuItem_savedListSelect(evt:ContextMenuEvent):void {               
        accrWin.selectedIndex = 0;
      [Bindable]
      private var propValue:String = "Component";
            private function itemClickEvent(event:ListEvent):void {
       var propKey:String = dgProp.selectedItem.@key;
       if (propKey == "name") {
        propValue = dgProp.selectedItem.propvalue;   
      [Bindable]
      private var sourceXML:XML =
      <order>
       <!--This is a comment. -->
       <?PROC_INSTR sample ?>
       <item id='1'>
        <menuName>burger</menuName>
        <price>3.95</price>
       </item>
       <item id='2'>
        <menuName>fries</menuName>
        <price>1.45</price>
       </item>
      </order>;
      [Bindable]
      private var savedComp:Array=['ComponentTemplate',
      'iv85341.EquityCash.v1',
      'ra92724.ThreeWaySplit.EU.US.OTHERS.v1',
      'ra92724.TwoWaySplit.EU.OTHERS.v1',
      'ra92724.TwoWaySplit.US.OTHERS.v1',
      'iv85341.VanillaNode.v1',
      'iv85341.ReadGmrFs.v1'
         [Bindable]
         private var propData:XML =
          <properties>
           <prop key="name">
            <propvalue>Component</propvalue>
         <itemRenderer>mx.controls.NumericStepper</itemRenderer>
           </prop>
           <prop key="Version">
            <propvalue>1.0</propvalue>
         <itemRenderer>mx.controls.NumericStepper</itemRenderer>
           </prop>
           <prop key="Owner">
            <propvalue>iv85341</propvalue>
         <itemRenderer>mx.controls.NumericStepper</itemRenderer>
           </prop>
           <prop key="width">
            <propvalue>250</propvalue>
         <itemRenderer>mx.controls.NumericStepper</itemRenderer>
           </prop>
           <prop key="height">
            <propvalue>300</propvalue>
         <itemRenderer>mx.controls.NumericStepper</itemRenderer>
           </prop>      
           <prop key="X-Pos">
            <propvalue>40</propvalue>
         <itemRenderer>mx.controls.NumericStepper</itemRenderer>
           </prop>
           <prop key="Y-Pos">
            <propvalue>20</propvalue>
         <itemRenderer>mx.controls.NumericStepper</itemRenderer>
           </prop>
          </properties>;
       private function rightClick(event:MouseEvent):void
        Alert.show("Properties ..." + event.currentTarget, "Open");
       // Draging Code Starts Here
       private var curDate:Date = new Date();
       private var dateList:XMLList = null;
       public function pictureDragDrop(event:DragEvent):void { 
        //Alert.show (" com = " + event.dragSource.dataForFormat("key"));
        var nodeName:String = event.dragSource.dataForFormat("key").toString(); //txtInput1.text;
        var nodeValue:String = "";
        if (nodeValue == "")
         if (xm == <AbstractComponentTemplate></AbstractComponentTemplate>)
          xm.appendChild(compType);
          dateList = new XMLList("<DateCreated>" + curDate + "</DateCreated>");
          xm.appendChild(dateList);     
          dateList = new XMLList("<DateModified>" + curDate + "</DateModified>");
          xm.appendChild(dateList);
          xm1 = XML("<" + nodeName + "></" + nodeName + ">");
          xm.appendChild(xm1);
         else
          i++;
          xm1 = XML("<" + nodeName + "></" + nodeName + ">");
          xm.appendChild(xm1);
          //loopparent.push(xmlarray:xm1);
          loopparent[i] = xm1;     
        else
         var xmlList:XMLList = new XMLList("<" + nodeName + ">" + nodeValue + "</" + nodeName + ">");
         if (xm1 == null)
          xm.appendChild(xmlList);
         else
          for (j = i; j>0; j--)
          (loopparent[j]).appendChild(xmlList);
          //Alert.show("alert");
        var x:int = event.currentTarget.mouseX - xOff;
        var y:int = event.currentTarget.mouseY - yOff; 
        if(event.dragSource.dataForFormat("key") == "box")
         designer.addBox(x, y); 
        else  if(event.dragSource.dataForFormat("key") == "circle")
         designer.addCircle(x, y);
        else
         designer.addRectangle(x, y);
        //txtInput1.text = "";
        //txtInput2.text = "";
       // this method gets x and y coordinate of template box image
       private function myoffset(img:Image):void {
        xOff = img.mouseX;
        yOff = img.mouseY;
       // this method does acceptable draging box image
       public function pictureDragEnter(event:DragEvent):void{
        DragManager.acceptDragDrop(Canvas(event.target));       
       // this method supply drag box when mouse move on the design area
       private function dragPicture1(event:MouseEvent, img1:Image,format:String):void{
        var dragInitiator:Image=Image(event.currentTarget);
        var ds:DragSource = new DragSource();
        var imageProxy:Image = new Image();
        imageProxy.source = img1.source;    
        imageProxy.height= 150;
        imageProxy.width= 150;
        ds.addData(format,"key");
        DragManager.doDrag(dragInitiator, ds, event,imageProxy, 0, 0, 1.00);
       // this method works when click on the line button
       // it is make enable to draw line
       public function doDrawEnable():void {
        designer.setIsDrawEnable(true);  
       private var fileRef:FileReference;
       public function createXML():void {
        var fileName:String = "component.xml";
                    fileRef = new FileReference();
        fileRef.browse();
       // Draging code ends here
      ]]>
    </mx:Script>
    <mx:Fade id="theEffect"/>
    <mx:HDividedBox width="100%" height="100%">
      <mx:VDividedBox height="100%" width="20%">  
        <mx:Panel title="Drawing Components" width="100%" height="100%" layout="vertical" >
            <mx:Panel title="Nodes" width="100%" height="100%" layout="vertical">
             <mx:Image id="box" toolTip="TwoWay Split" useHandCursor="true" buttonMode="true" source="@Embed(source='images2/box.png')" mouseMove="dragPicture1(event, box, 'box');myoffset(box);" width="28" height="28" x="84" y="6"></mx:Image>
             <mx:Image id="rectangle" toolTip="MultiWay Split" useHandCursor="true" buttonMode="true" source="@Embed(source='images2/rectangle.png')" mouseMove="dragPicture1(event, rectangle, 'rectangle');myoffset(rectangle);" width="28" height="28" x="160" y="10"></mx:Image>
             <mx:Image id="circle" toolTip="Reader" useHandCursor="true" buttonMode="true"  source="@Embed(source='images2/circle.png')" mouseMove="dragPicture1(event, circle, 'circle');myoffset(circle);" width="28" height="28" x="120" y="8"></mx:Image>
             <mx:Image id="line" toolTip="Line" useHandCursor="true" buttonMode="true" source="@Embed(source='images2/line.png')" click="doDrawEnable()" width="28" height="28"  x="279" y="10"></mx:Image>
             <!--<mx:Image id="dottedline" source="@Embed(source='images2/dottedline.png')" click="doDrawEnable()" width="28" height="35"  x="279" y="10"></mx:Image>
             <mx:Label text="Name" x="350" y="10"/>
             <mx:TextInput id="txtInput1" width="50" height="28" x="400" y="10"/>
             <mx:Label text="Value" x="470" y="10"/>
             <mx:TextInput id="txtInput2" width="50" height="28" x="510" y="10"/>-->
            </mx:Panel>
        </mx:Panel>
      </mx:VDividedBox>
      <mx:VDividedBox height="100%" width="60%">
        <mx:HDividedBox width="100%" height="100%">   
         <mx:Canvas width="100%" height="100%" >
          <mx:TabBar x="0" y="10" dataProvider="viewstack1" />
          <mx:ViewStack id="viewstack1" width="100%" height="100%" y="32">
           <mx:Canvas backgroundColor="#ffffff" borderColor="0xB7BABC" borderStyle="solid" borderThickness="7" label="{propValue}" id="designArea" contextMenu="{cm}" dragEnter="pictureDragEnter(event)" dragDrop="pictureDragDrop(event)" width="100%" height="100%" >
           </mx:Canvas>
           <mx:Panel id="pnlXML" label="XML" width="100%" height="100%" showEffect="{theEffect}" >
            <mx:ControlBar width="100%" barColor="#FF22CC">
             <mx:Spacer width="100%"/>
             <mx:Button id="btnSave" label="Save" useHandCursor="true" buttonMode="true" mouseChildren="false" click="createXML()" />    
            </mx:ControlBar>
            <mx:TextArea fontSize="12" wordWrap="false" textIndent="8" id="txtAreaXML" text="{xm}" width="100%" height="100%" editable="false" />       
           </mx:Panel>
          </mx:ViewStack>
         </mx:Canvas>
        </mx:HDividedBox> 
      </mx:VDividedBox>
      <mx:VDividedBox height="100%" width="20%">
       <mx:Panel title="Saved Components and Properties" width="100%" height="100%" layout="vertical" >
        <mx:Accordion id="accrWin" x="51" y="35" width="100%" height="100%">
            <mx:Canvas label="Saved Components" width="100%" height="100%">
             <mx:List height="100%" width="100%" dataProvider="{savedComp}" />        
            </mx:Canvas>
            <mx:Canvas id="accrCon2" label="Properties" width="100%" height="100%">
             <mx:DataGrid id="dgProp" dataProvider="{propData.prop}" height="100%" width="100%" editable="true" itemClick="itemClickEvent(event);">
              <mx:columns>
               <mx:DataGridColumn dataField="@key" headerText="Property" editable="false" />
               <mx:DataGridColumn dataField="propvalue" headerText="Value" editable="true" />                 
              </mx:columns>
             </mx:DataGrid>
            </mx:Canvas>
         </mx:Accordion>
       </mx:Panel>
      </mx:VDividedBox>
    </mx:HDividedBox>
    <mx:ApplicationControlBar dock="true"> 
      <mx:Image source="images/Openfile.gif" toolTip="Open" useHandCursor="true" buttonMode="true" mouseChildren="false" click="createXML()" />
      <mx:Image source="images/Savefile.gif" toolTip="Save" useHandCursor="true" buttonMode="true" mouseChildren="false" click="createXML()" />
      <mx:Image source="images/Undo.gif" toolTip="Undo" useHandCursor="true" buttonMode="true" mouseChildren="false" />
      <mx:Image source="images/Redo.gif" toolTip="Redo" useHandCursor="true" buttonMode="true" mouseChildren="false" />
      <mx:Image source="images/Delete.gif" toolTip="Delete" useHandCursor="true" buttonMode="true" mouseChildren="false" />
      <mx:Image source="images/Print.gif" toolTip="Print" useHandCursor="true" buttonMode="true" mouseChildren="false" />
      <mx:Spacer width="100%" />
      <mx:Label text="BackTesting" fontWeight="bold" fontSize="16" />
    </mx:ApplicationControlBar>
    </mx:Application>
    Plz change my code according to the requirement.
    Thanks

    Could you give us the full source code?
    Thanks!!

  • Create a Panel skin (Spark) with a background fill color I can pass as a parameter

    Hi,
    I'm trying to create a Panel skin (Spark) with a background fill color I can pass as a parameter.
    (See in bold:)
    <?xml version="1.0" encoding="utf-8"?>
    <s:SparkSkin name="CustomPanelSkin"
                                   xmlns:fx="http://ns.adobe.com/mxml/2009"
                                   xmlns:s="library://ns.adobe.com/flex/spark"
                                   xmlns:fb="http://ns.adobe.com/flashbuilder/2009"
                                   blendMode="normal">
              <s:states>
                        <s:State name="normal" />
                        <s:State name="disabled" />
                        <s:State name="normalWithControlBar" stateGroups="withControls" />
                        <s:State name="disabledWithControlBar" stateGroups="withControls" />
              </s:states>
              <fx:Metadata>
                        [HostComponent("spark.components.Panel")]
              </fx:Metadata>
              <s:Group left="0" right="0" top="0" bottom="0">
                        <s:Rect
                                  left="0" right="0"
                                  top="0" bottom="0"
                                  radiusX="12" radiusY="12">
                                  <s:fill>
                                            <s:SolidColor color="#184c81" />
                                  </s:fill>
                        </s:Rect>
                        <s:Group id="contents"
                                             left="1" right="1" top="1" bottom="1">
                                  <s:layout>
                                            <s:VerticalLayout gap="0" horizontalAlign="justify" />
                                  </s:layout>
                                  <s:Group id="contentGroup"
                                                       width="100%" height="100%" minWidth="0" minHeight="0">
                                  </s:Group>
                        </s:Group>
              </s:Group>
    </s:SparkSkin>
    From what I read I should create a subclass, but there is not much material on the subject.
    I would later on want to use this skin in many Panel controls I have in my application.
    Thanks for the help.

    Did you read this?
    http://www.adobe.com/devnet/flex/articles/flex4_sparkintro.html

  • How to create function panels for my own C functions?

    I've been searching for a way to create my own function panels. CVI documentation seems to suggest that this can be done but the explanation inevitably turns to instrument drivers, not C functions.
    I don't yet know what an instrument driver is. So far I've never needed one. I just want to know how to put plain old C functions that I've created into the library tree for coworkers to use. Is that practically possible?

    The facility is couched in terms of "instrument driver" but it can be used for an arbitrary CVI function you've created.
    First make a function tree from File pull down menu   new ... Function Tree
    Then right click in blank function tree panel and create instrument or use Create pulldown menu, enter name as prompted, use help button.  You need to choose a "prefix" for your function names.
    The tricky part is when you want to add a function to your "instrument" you right click on the <create class or function panel window> token the first time, thereafter when adding a function you right click on one of the functions you've already added.  In either case you want to "create function panel window" which brings up the function panel window editor whcih allows you to place input controls that match the function signature.
    There's a learning curve but keep at it.  The help is good, use it.
    Menchar

  • Do you know how to create Front Panel like Web,

    Do you know how to create Front Panel like Web, I mean like we pointed the word and click it will do another process instead by clicking push button.
    If possible, i can click the link in the table... Any idea anyone
    Solved!
    Go to Solution.

    Hi ezam,
    can you define more clearly exactly what you would actually like to do, and ill have a further look into it. I think smercurio_fc has understood it as I have, and is right with the activeX.
    any way, give a shout back with exactly what you want to do and we see what we can do,
    Richard
    Richard S
    Applications Engineer
    Certified LabVIEW Associate Developer
    National Instruments UK&Ireland

  • How do we create a panel with a title on it

    How do we create a panel with a title on it (something like the titled border in java swing)

    Thanks John,
    But, I already have a panel box with many panel form layouts inside and would like to have a title on one of the panel form layouts. So, a panel box isn't the one I am looking for.
    More like the titled border shown in here [http://java.sun.com/docs/books/tutorial/uiswing/components/border.html#demo]
    thanks again
    Anwar

  • Creating Many Panels

    Hello. I am greating a GPA. There is a credits JComboBox and a grade JComboBox. I created a method to create a JPanel which includes both of these.
    public JPanel createGradePanel() {
    JPanel gradePanel = new JPanel();
    gradePanel.setBackground(Color.LIGHT_GRAY);
    gradePanel.setLayout(new BoxLayout(gradePanel, BoxLayout.X_AXIS));
    JLabel creditsLabel = new JLabel("Credits:");
    JLabel gradeLabel = new JLabel("Grade:");
    JComboBox gradeCombo = new JComboBox();
    JComboBox creditsCombo = new JComboBox();
    gradeCombo.addItem("");
    gradeCombo.addItem("A");
    gradeCombo.addItem("A-");
    gradeCombo.addItem("B+");
    gradeCombo.addItem("B");
    gradeCombo.addItem("B-");
    gradeCombo.addItem("C+");
    gradeCombo.addItem("C");
    gradeCombo.addItem("C-");
    gradeCombo.addItem("D+");
    gradeCombo.addItem("D");
    gradeCombo.addItem("D-");
    gradeCombo.addItem("E");
    creditsCombo.addItem("");
    creditsCombo.addItem("1");
    creditsCombo.addItem("2");
    creditsCombo.addItem("3");
    creditsCombo.addItem("4");
    creditsCombo.addItem("5");
    creditsCombo.addItem("6");
    gradePanel.add(Box.createHorizontalStrut(88));
    gradePanel.add(creditsLabel);
    gradePanel.add(Box.createHorizontalStrut(6));
    gradePanel.add(creditsCombo);
    gradePanel.add(Box.createHorizontalStrut(6));
    gradePanel.add(gradeLabel);
    gradePanel.add(Box.createHorizontalStrut(6));
    gradePanel.add(gradeCombo);
    gradePanel.add(Box.createHorizontalStrut(50));
    return gradePanel;
    Now, in my construcor I add this panel to another panel.
    for(int i=0;i<7;i++){
    infoPanel.add(createGradePanel());
    The only problem is that all of my comboboxes are named the same, so I can't the selected item of a specific one. Is there any way to do this where I can give them a specific name, ie gradeCombo1, gradeCombo2 without actually creating each panel speratly?

    You could create arrays of JComboBoxes and reference them by index.
    Mark

  • Dynamically created COLLAPSIBLE PANELS

    In case this might help others, I thought I would share how I
    dynamically create Collapsible Panels using MySQL, PHP, and SPRY.
    Please note that I am not a master PHP coder and so there might be
    a more efficient method but this does work great for me. Here is my
    scenario. I have a MySQL table which holds a list of user
    applications. Some applications then have individual modules which
    are stored in a seperate table and related to applications by
    app_id. I want to display the list of applications and then for
    applications that have modules I create a collapsible panel to
    display the modules.
    My Applications:
    mysql_select_db($database_ppg_conn, $ppg_conn);
    $query_applications = "SELECT * FROM applications ORDER BY
    active desc, name ASC";
    $applications = mysql_query($query_applications, $ppg_conn)
    or die(mysql_error());
    $row_applications = mysql_fetch_assoc($applications);
    $totalRows_applications = mysql_num_rows($applications);
    code for application lists and collapsible panels:
    <div id="maincontainerbox" align="center">
    <div class="ppgaccounthdr">
    PPG Applications
    </div>
    <div class="ppgaccountrow_active">
    <a href="ppgaccounts_update.php?app=new">Add New
    Application</a>
    </div>
    <?php
    $icount = 0;
    do { ?>
    <?php switch ($row_applications['modules']) {
    case "Y":
    $modules = 1; //flags the building of collapsible panel to
    display available modules for current application.
    ++$icount; //tracks # of applications that have modules.
    This is used to properly create multiple collapsible panels.
    break;
    default:
    $modules = 0; //no modules for current app
    break;
    } ?>
    <?php switch ($row_applications['active']) {
    case "Y":
    if ($modules == 1) {
    echo '<div id="CollapsiblePanel'.$icount.'"
    class="ppgaccountrow_active1"><div
    class="ppgaccountrow_active">';
    } else {
    echo '<div class="ppgaccountrow_active">'; }
    break;
    default:
    echo '<div class="ppgaccountrow_notactive">';
    break;
    ?>
    <a href="ppgaccounts_update.php?app=<?php echo
    $row_applications['id'];?>"><?php echo
    $row_applications['name']; ?></a>
    <?php if ($modules == 1) {
    echo '</div>';
    echo '<div class="CollapsiblePanelContent">';
    $query_appmodules = "SELECT *
    FROM app_modules
    WHERE app_id = {$row_applications['id']}
    ORDER BY active desc, name ASC";
    $appmodules = mysql_query($query_appmodules, $ppg_conn) or
    die(mysql_error());
    $row_appmodules = mysql_fetch_assoc($appmodules);
    $totalRows_appmodules = mysql_num_rows($appmodules);
    echo '<div class="appmodulerow_active">';
    echo '<a
    href="ppg_app_modules_update.php?id=new&app_id='.$row_applications['id'].'">Add
    New Module</a>';
    echo '</div>';
    do {
    switch ($row_appmodules['active']) {
    case "Y":
    echo '<div class="appmodulerow_active">';
    break;
    default:
    echo '<div class="appmodulerow_notactive">';
    break;
    echo '<a
    href="ppg_app_modules_update.php?id='.$row_appmodules['id'].'"
    title="Update Application
    Module">'.$row_appmodules['name'].'</a></div>';
    } while ($row_appmodules = mysql_fetch_assoc($appmodules));
    mysql_free_result($appmodules);
    echo '</div>';//close content div for collapsible
    panal
    } ?>
    </div>
    <?php } while ($row_applications =
    mysql_fetch_assoc($applications)); ?>
    </div>
    So when my application record has a flag saying that it
    possesses modules I increment $icount and then use
    echo '<div id="CollapsiblePanel'.$icount.'"
    class="ppgaccountrow_active1"> to build the collapsible
    panel. Notice the $icount in the div id. Now at the bottom of the
    HTML I do the following.
    <?php
    $i = 0;
    do {
    ++$i;
    echo 'var CollapsiblePanel'.$i.' = new
    Spry.Widget.CollapsiblePanel("CollapsiblePanel'.$i.'",{contentIsOpen:false});';
    } while ($i <= $icount);
    ?>
    //-->
    </script>
    This creates a collapsiblepanel for each application which
    has modules.
    I hope I have described this ok and that it might help
    somebody out. If you have suggestions on how to do it better then
    please do let me know.
    Thanks,
    Lee Goolsby

    Nice. Thanks for posting this, Lee.

  • Rants: Easier way of creating SWF panels with CS5?

    Last week I got a fairly advanced SWF panel in Photoshop CS4 running executing JSX scripts. But when I started to look into developing for CS5 everything changed and former SWF panels and their scripts do not work anymore in Photoshop CS5. And honestly I think there are way to many complicated little steps in the way to just get started. I am probably stuck on this for several weeks just to get a hello world demo running- and I am not sure If I want that. Getting the CS4 version running was a matter of 3 nights, even though back then the documentation was really hard to find and often incomplete.
    So upon studying the SDK and the tutorials that adobe provides I noticed a few annoying blockers in my way
    Adobe Flash builder dictation, some things are very restrictive and shown only for just that IDE platform. My choice of scripting environment is FlashBuilder however for various reasons (free and coding speed are 2 of them). The documentations and Tutorials however hide many important steps that are going on in the background. If the compiler gets certain arguments I need to know that, same if some ANT scripts or alike deploy files to certain folders.
    upon configuring my computer before scripting I had to change a windows registry key (HKEY_CURRENT_USER\Softwarea\Adobe\CSXS2Preferences, playerDebugMode = 1). However that key entry doesn't even exist to begin with on my Windows 7 computer even though Photoshop CS5, Extention Manager and ExtendScript Toolkit are present and installed.
    I need a special SDK compiler instead of the latest FlexSDK, this makes things only more complicated and confusing. I have it now but to figure that out took a while, as this is completely different from how things used to work with CS4.
    Everything is flex focused it would be nice if some tutorials could have a focus on pure AS3 as well, for those who don't like the Flex framework or GUI.
    CS4 and CS5 (Photoshop) seem to be incompatible in the way one can deploy or create SWF panels, this is a major down for any developer that is interested in supporting booth applications. I happen to work in a environment where still a majority of people work with CS4. Also the CS4 documentation (Photoshop) for the SWF panels seem to have vanished, this makes this issue even worse.
    So what I want is:
    The most minimalistic working example straight to the point just to get a SWF panel in Photoshop CS5 running executing some JSX script using eval for example. This is easy in CS4 but very restricted and complicated in CS5 .
    dropping a SWF file in the Photoshop/plugins/panel folder works but it resizes wrong (even though stage.scaleMode is set to noScale), and any CSXSInterface methods seem to be ignored (CSXSLibrary-2.0-sdk-3.4-public.swc used).
    I think I gave up for now on CS5, to restrictive, complex and incompatible with CS4 are my main complaints- I hope this gets through as some feedback - or maybe there is a answer on all my questions?

    Hello,
    one answer to your last question could be this cookbook, then as you probably already know there's the Photoshop panel developer's guide (the CS5 isn't that different from CS4...)
    As the #1 messy coder around (and not that much skilled), I understand your complaints. I'm focused on Photoshop only, and the panel guide for CS4  was more than enough. My learning curve with CS SDK is, to put it mildly, steep (since I've not really any previous experience with Flex - and I agree, using 3.4 SDK and not 4.0 may lead to some confusion), but I'm optimistically confident that CS SDK for CS6 will be far more usable.
    I find particularly annoying that to make life easier Adobe created CS Extension Builder, but to get it is nearly impossible (at least for me: I don't know if Gmail can't get thru Adobe mail server spam control, but in the last 4 months I wrote several emails to Roger Risdal, the "Partner Product and Business Developer Manager" in order to get info about the developer partnership required, and I got as the only answer a couple of out-of-office autoreply) Rumors say that Adobe's DevNet will undergo some robust changes (when, I don't know)  - I hope they will change their mind about the way Extension Builder will be (or not be) distributed.
    One last optimistic consideration is that the tools needed to deploy an extension (the ucf.jar for instance) and the general workflow (write the manifest.xml, pack everything with that java command line utility into a zip-like file, the .zxp, then write an .mxi to access features like auto-update and re-pack again into *another* .zxp) are far from having a good usability and being straightforward... so far that in my opinion the newer releases will surely be better than this one.
    That said, I understand that experienced developers are happily plunging into CS SDK while I'm having hard times keeping my head above waters, and I'm sure CS SDK will lead to a very interesting future.
    By the way, to drop the SWF in the panel's folder isn't a good idea if you want the extension to have the right dimensions (this is something I've learnt) - the manifest.xml is the right place.
    Ciao,
    Davide

  • Can Adobe Configurator 3 create one panel that can be installed in other versions of Photoshop?

    Hi,
    I am able to create a new panel for CS5 and CS6, however, if I create a CS5 panel (thinking it should work in CS6 as well), when I try to install the panel ZXP file in CS6 Extenstion Manager, I am unable to do so...meaning, the CS5 panel will not load for users with CS6?  Is there any way to create a panel in Configurator 3 that will export one zxp (or similar package file) that can install in multple versions of Photoshop?
    I note in Configurator 2, I was able to export an mxi file that I could convert in Extension Magager 3 and that seemed to open without issue, however with Configurator 3, I don't see any other export options but zxp.  Any help on this would be great!  Thank you!!
    Evan

    Because of the difference of scripting interface of CS5 and CS6, Configurator cannot create a panel that works for multiple versions of Photoshop. You need to create two of them for CS5 and CS6. In your case, I suggest you create a panel of CS5, and then create a version of CS6 by clicking "Edit->Convert to CS6". (Some buttons will be lost if those buttons are not supported in CS6)
    Configurator 3 creates the zxp for you and you need not to create one with mxi file and Extension Manager.

  • Creating a panel with multiple canvasses on it, in complementary colors

        public Dancefloor(Dimension patches, int size, Color color)
            //create JPanel
            super();
            backgroundColor = color;
            numberOfPatches = patches;
            patchSize = size;
            //set Size of Dancefloor, make a conversion because the returned type isn't int but double and the setSize
            //function is only able to handle int
            setSize((new Double( numberOfPatches.getWidth() * patchSize) ).intValue(),
            (new Double( numberOfPatches.getHeight() * patchSize) ).intValue() );
            //set bacground color of the panel
            setBackground(backgroundColor);
            //create a number of patches, as submitted to the constructor(at the moment as Canvas)
            //Create a for loop which will be looped as much times as the number of patches
            for(int d = 0; d < new Double(numberOfPatches.getWidth() * numberOfPatches.getHeight()).intValue(); d++)
                //create a new canvas and set a background for it
                patch = new Canvas[new Double(numberOfPatches.getWidth() * numberOfPatches.getHeight()).intValue()];
                patch[d] = new Canvas();
                patch[d].setBackground(backgroundColor);
                //set another background for the patches that are not even, but have an odd number
                if(d % 2 != 0)
                    float[] colorHSB = color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), null);
                    colorHSB[0] += 0.5;
                    if(colorHSB[0] > 1) {
                        colorHSB[0] -= 1;
                    patch[d].setBackground(new Color(Color.HSBtoRGB(colorHSB[0], colorHSB[1], colorHSB[2])));
        }Above is the code of the constructor of my class called Dancefloor, it attempts to create a panel(the 'dancefloor') with multiple canvasses('patches') on it. The even patches should have the color specified in the constructor, the others should have a complementary color as background. this is done using the last if-statement.
    When executing however, all patches have the color specified in the constructur and so you all you can see is a panel with a background instead of a panel with a patchwork of 2 different color canvasses on it
    I hope this explanation was pretty clear, I hope someone is able to help me out
    thomas

    i would suggest if you are going to use a JPanel, simply create an array of Rectangles that represent all of your patches. Then override the paintComponent(Graphics g) method of the JPanel to and use the fillRect(int x, int y, int width, int height) method from the graphics class to draw all of your rectangles something like this
    JPanel floor = new JPanel() {
         public void paintComponent(Graphics g) {
              super.paintComponent(g);
              for (int j = 0; j < myRectangles.length; j++){
                    g.setColor(whateverColor)
                    g.fillRect(myRectangles[j].x, myRectangles[j].y,
                                     myRectangle[j].height, myRectangles[j].width);
    }btw, you can use the field values width and height from Dimension class to retrieve an int value, insted of using getWidth() and getHeight just call myDimension.height or myDimension.width

Maybe you are looking for

  • Cisco ASA 5505 - Can't Login from Public & Local IP Anymore!

    Hello, We've a Cisco ASA 5505 connected directly to Verizon FiOS Circuit (ONT) box using Ethernet cable. As per the existing documention that I have, the previous configured this as a dedicated router to establish a seperate VPN connection our softwa

  • How to read the selected value of a dropdown list box

    Hello, I have 2 custom fields which are of type dropdown list on Accounts(CRMM_ACCOUNT) PCUI application details tab.I need to read the selected value of first dropdown list item,based on that second dropdown list will be populated. I know where to p

  • Problem with focusListener

    Hi All, I have created 2 text fields and added the focus listener to check user data. EX: Whenever user leaves the text field blank progrm will alert not to leave the text field blank. Whenever I press tab to go to next text field I receive alert for

  • Error in Import Campaign Receipients

    Hi, When i am importing my campaign receipient, i face the below error. Can anyone tell me what is this error about? I am the administrator and I am the creator of the campaign. Error message : Unable to set parent context for this record. Please mak

  • What Video camera to buy?

    I am working with a not for profit group who is interested in putting some videos about members of the group as part of telling it's history. I am considering buying a consumer camera, probably HD, and am wondering which camera's work well in this si