SelectItems using custom list component and itemRenderer

Hello, is it possible to do this without overriding selectedItems setters?
I'm passing xml as the dataProvider for a custom list:
here is the dataProvider XML:
<color id="1" name="Red" color="0xFF0000" />
<color id="2" name="Blue" color="0x0000FF" />
<color id="3" name="Green" color="0x00FF00" />
<color id="4" name="Orange" color="0xFF9900" />
<color id="5" name="Yellow" color="0xFFFF33" />
<color id="6" name="Purple" color="0x990099" />
i I've tried passing the selectedItem like this: colors.selectedItem= XML('<color id="3" name="Green" color="0x00FF00" />')
with no luck. i also have tried the vector.<Object> method as well with no luck.Can someone show me an example data format that you think might work for the selectedItem property, or even better selectedItems?
thanks- brandon

Thank you for the help; so i think i understand what you're saying:
i have to search through the 'colors' dataProvider for the items i wish to be selected, then I create a list of those vectors/items I wish to be selected, then pass that list to the selectedItems property? seems easier to find all selectedIndices instead if this is a correct method? thanks -brandon

Similar Messages

  • Create Custom list form and validate fields using sharepoint designer 2010

    Hi All,
    I have a requirement to create a custom job application form which will be filled and submitted by anonymous users. I have a an option to create custom user control web part but I wanted to
    create it using custom list form using SharePoint designer. My requirement is below
    Date of birth (user age should be above 22yrs )
    Email Validation
    Phone validation
    Resume attachment (should attach only word documents or PDF)
    Qualification (If other is selected then show textbox else hide)
    Can above validations be done using SharePoint designer (JavaScript or validation controls)? Or do I have to create custom control web part?
    MercuryMan

    Hello,
    I think jquery/javascript can be used to put validations on those fields. Fortunately some of validation can be done via sharepoint itself like: email, phone, age. For Attachment and Qualification fields use jquery/JS.
    See below link for column validations:
    http://thechriskent.com/2012/08/15/validate-phone-number-columns-in-sharepoint/
    http://sharepointsolutions.com/sharepoint-help/blog/2011/12/how-to-validate-an-email-address-using-column-validation-in-sharepoint-2010/
    See this for attachment:
    http://stackoverflow.com/questions/4234589/validation-of-file-extension-before-uploading-file
    For qualification:
    http://sharepoint.stackexchange.com/questions/88064/hide-show-field-on-list-form-based-on-value-from-another-field
    Hope it could help
    Hemendra:Yesterday is just a memory,Tomorrow we may never see<br/> Please remember to mark the replies as answers if they help and unmark them if they provide no help

  • Using a List Component to create a photo gallery.

    This feels like a lot to be asking but i'm gonna go ahead and
    ask to see what happens.
    I'm trying to figure out how to use a list component to
    select 6 items from a large list, display the words to the 6
    selected items (in a text field), then finally (by pressing a
    button) I would like to load the 6 corresponding pictures for the
    selected items into a seperate frame. If there is anyone that could
    point me in the right direction it would be greatly appreciated. I
    have been trying to find information online about programming the
    List Component but haven't had any luck. Is there a book that
    anyone recommends that could help me? I've been doing simple
    animations and websites in flash but i'm now looking to learn some
    actionscripting as well. Thanks.

    Hi PinkPowerRanger,
    Per my understanding that you have two fields in the table "Date and Time picker" which is Date/time type and another is "Item ID", you need to get the Month from the Date field to display in the X-axis and count(Item ID) related to each
    month to display in the Y-Axis, right?
    I have tested on my local environment and can do this by create two calculated fields to get the month and year values from the Date/Time field.
    Details information below for your reference:
    Right click the main dataset to select the "Add Calculated field", specify an name of the new calculated field and add the expression in the field source as below:
    Year:    =Year(Fields!Date.Value)
    Month:  =MonthName(Month(Fields!Date.Value))
    Add the three field in the Chart as below and remember in the Value area you have got the Count(ItemID) but not SUM(ItemID):
    Preview you will got the chart like below:
    If you still have any problem, please feel free to ask.
    Regards
    Vicky Liu
    Vicky Liu
    TechNet Community Support

  • Custom List component in Flash builder 4.5

    Hi,
    Am new to Flash builder 4.5. I want to create a custom list component. In that i have some queries.
    They are,
    1. What are the basic procedures/steps to be followed for Component development in Flash builder 4.5
    2. What are the approaches to the component development in Fladh builder 4.5?
    3. Is there any reference sutes available?
    Thanks,
    Manikandan

    http://www.adobe.com/devnet/flex/videotraining/exercises/ex1_06.html
    you could also search blogs for custom component creation. There might be many implementations for your learning/usage.

  • No search results when using custom list search

    Hi,
    I've built a custom list in SharePoint Online , which was supposed to be a new tracker. It was a combination of 3 different DBs. I combined the data in excel, scrubbed it and synced the data into my sharepoint list using Access. The question: Why
    don't I have any entries showing when I use the seach box within my list? It comes up with nothing found? I don't have SharePoint Admin rights, I'm just a site owner. Which elements should I look into first to make sure that my entries are found? Any help
    will be greatly appreciated. Thank You.

    Hi WSBR.Darius,
    After you added data into the custom list, if you want to search the items, you also need to run a crawl for your content source.
    However, for SharePoint 2013 Online, continuous crawls are enabled in SharePoint Online, with crawl frequencies managed by Microsoft. You need to wait for finishing continuous crawl.
    More information about Search feature in SharePoint Online:
    https://technet.microsoft.com/en-us/library/jj819291.aspx?f=255&MSPPError=-2147217396
    In addition, as this issue is about SharePoint 2013 online, I suggest you create a new thread on Office 365 forum, more experts will assist you with SharePoint Online.
    Office 365 forum:
    http://community.office365.com/en-us/f/default.aspx
    Best Regards,
    Wendy
    Wendy Li
    TechNet Community Support

  • Signing a Document using Custom PKCS#11 and Hardware Token

    I am using a custom PKCS#11 dynamic library and a hardware token to sign a document in Adobe Acrobat 10. I encountered this error when I used the Standard Text as the Appearance of the Signature.
    Creation of this signature could not be completed. Unknown error Support Information: CDSHandler-657
    If I use a custom appearance, the signing is successful.
    Do I need to set anything else before signing the document? Everything works fine on Adobe Acrobat 11. I am using a Mac OS X 10.9 machine. The same error is encountered in Windows 7.
    Is this a known issue in Adobe Acrobat 10?

    My bad, actually I was not using Adobe SDK. I just loaded my custom PKCS module and tried to sign the document. Have you encountered this error?

  • List component and external .txt file

    Hi,
    Is there a way to load item labels of a list component from
    an external .txt file?
    Thanks

    Thank you very much Marghoob. It worked!

  • Odd behavior when using custom Composite/CompositeContext and antialiasing

    Hi,
    I created a custom Composite/CompositeContext class and when I use it with antialiasing it causes a black bar to appear. I seems it has nothing to do with the compose() code but just that fact that I set my own Composite object. The submitted code will show you what I mean. There are 3 check boxes 1) allows to use the custom Composite object, 2) allows to ignore the compose() code in the CompositeContext and 3) toggles the antialiasing flag in the rendering hints. When the antialiasing flag is set and the Composite object is used the bar appears regardless of if the compose() method is executed or not. If the Composite object is not used the bar goes away.
    The Composite/CompositeContext class performs clipping and gradient paint using a Ellipse2D.Float instance.
    a) When the Composite is not used the code does a rectangular fill.
    b) When the Composite is used it should clip the rectangular fill to only the inside of a circle and do a gradient merge of background color and current color.
    c) If the compose() method is ignored then only the background is painted.
    d) When antialiasing is turned on the black bar appears, i) if you ignore the compose() method it remains, ii) if you do not use the Composite object the bar disappears (???)
    NOTE: the compose method's code is only for illustration purposes, I know that AlphaComposite, clipping and/or Gradient paint can be used to do what the example does. What I am trying to find out is why the fact of simply using my Composite object with antialiasing will cause the odd behavior.  Been trying to figure it out but haven't, any help is appreciated.
    Thx.
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.awt.image.*;
    import javax.swing.*;
    public class TestCustomComposite2
    extends JFrame
    implements ActionListener {
        private JCheckBox useCompositeChk, useAntialiasingChk, useCompositeContextChk;
        private Shape clippingShape = new Ellipse2D.Float(100, 100, 100, 100);
        private MergeComposite composite = new MergeComposite();
        public TestCustomComposite2() {
            super("Test Custom Composite");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JPanel cp = (JPanel) getContentPane();
            cp.setLayout(new BorderLayout());
            cp.add(new TestCanvas(), BorderLayout.CENTER);
            JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
            panel.add(useCompositeChk = new JCheckBox("Use Composite", true));
            useCompositeChk.addActionListener(this);
            panel.add(useCompositeContextChk = new JCheckBox("Use Composite Context", true));
            useCompositeContextChk.addActionListener(this);
            panel.add(useAntialiasingChk = new JCheckBox("Use Antialiasing"));
            useAntialiasingChk.addActionListener(this);
            cp.add(panel, BorderLayout.SOUTH);
            pack();
            setVisible(true);
        public void actionPerformed(ActionEvent evt) {
            useCompositeContextChk.setEnabled(useCompositeChk.isSelected());
            invalidate();
            repaint();
        private class TestCanvas
        extends JComponent {
            public TestCanvas() {
                setSize(300, 300);
                setPreferredSize(getSize());
            public void paint(Graphics gfx) {
                Dimension size = getSize();
                Graphics2D gfx2D = (Graphics2D) gfx;
                gfx2D.setColor(Color.GRAY);
                gfx2D.fillRect(0, 0, size.width, size.height);
                RenderingHints rh = null;
                if(useAntialiasingChk.isSelected()) {
                    rh = gfx2D.getRenderingHints();
                    gfx2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                Rectangle r = clippingShape.getBounds();
                //gfx2D.setColor(Color.GREEN);
                //gfx2D.drawRect(r.x, r.y, r.width, r.height);
                gfx2D.setColor(Color.YELLOW);
                gfx2D.fill(clippingShape);
                Composite oldComposite = null;
                if(useCompositeChk.isSelected()) {
                    oldComposite = gfx2D.getComposite();
                    gfx2D.setComposite(composite);
                gfx2D.setColor(Color.ORANGE);
                gfx2D.fillRect(r.x, r.y, r.width + 1, r.height + 1);
                if(oldComposite != null)
                    gfx2D.setComposite(oldComposite);
                if(rh != null)
                    gfx2D.setRenderingHints(rh);
        public class MergeComposite
        implements Composite, CompositeContext {
            public CompositeContext createContext(ColorModel srcColorModel,
                                                  ColorModel dstColorModel,
                                                  RenderingHints hints) {
                return this;
            public void compose(Raster src,
                                Raster dstIn,
                                WritableRaster dstOut) {
                if(!useCompositeContextChk.isSelected())
                    return;
                int[] srcPixel = null;
                int[] dstPixel = null;
                for(int sy = src.getMinY(); sy < src.getMinY() + src.getHeight(); sy++) {
                    for(int sx = src.getMinX(); sx < src.getMinX() + src.getWidth(); sx++) {
                        int cx = sx - dstOut.getSampleModelTranslateX();
                        int cy = sy - dstOut.getSampleModelTranslateY();
                        if(!clippingShape.contains(cx, cy)) continue;
                        srcPixel = src.getPixel(sx, sy, srcPixel);
                        int ox = dstOut.getMinX() + sx - src.getMinX();
                        int oy = dstOut.getMinY() + sy - src.getMinY();
                        if(ox < dstOut.getMinX() || ox >= dstOut.getMinX() + dstOut.getWidth()) continue;
                        if(oy < dstOut.getMinY() || oy >= dstOut.getMinY() + dstOut.getHeight()) continue;
                        dstPixel = dstIn.getPixel(ox, oy, dstPixel);
                        float mergeFactor = 1.0f * (cy - 100) / 100;
                        dstPixel[0] = merge(mergeFactor, srcPixel[0], dstPixel[0]);
                        dstPixel[1] = merge(mergeFactor, srcPixel[1], dstPixel[1]);
                        dstPixel[2] = merge(mergeFactor, srcPixel[2], dstPixel[2]);
                        dstOut.setPixel(ox, oy, dstPixel);
            protected int merge(float mergeFactor, int src, int dst) {
                return (int) (mergeFactor * src + (1.0f - mergeFactor) * dst);
            public void dispose() {
        public static void main(String[] args) {
            new TestCustomComposite2();
    }

    I got a better version to work as expected. Though there will probably be issues with the transformation to display coordinates as mentioned before. At least figured out some of the kinks of using a custom Composite/CompositeContext object.
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.geom.*;
    import java.awt.image.*;
    import javax.swing.*;
    public class TestCustomComposite2
    extends JFrame
    implements ActionListener {
        private JCheckBox useCompositeChk, useAntialiasingChk, useCompositeContextChk;
        private Shape clippingShape = new Ellipse2D.Float(100, 100, 100, 100);
        private MergeComposite composite = new MergeComposite();
        public TestCustomComposite2() {
            super("Test Custom Composite");
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            JPanel cp = (JPanel) getContentPane();
            cp.setLayout(new BorderLayout());
            cp.add(new TestCanvas(), BorderLayout.CENTER);
            JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
            panel.add(useCompositeChk = new JCheckBox("Use Composite", true));
            useCompositeChk.addActionListener(this);
            panel.add(useCompositeContextChk = new JCheckBox("Use Composite Context", true));
            useCompositeContextChk.addActionListener(this);
            panel.add(useAntialiasingChk = new JCheckBox("Use Antialiasing"));
            useAntialiasingChk.addActionListener(this);
            cp.add(panel, BorderLayout.SOUTH);
            pack();
            setVisible(true);
        public void actionPerformed(ActionEvent evt) {
            useCompositeContextChk.setEnabled(useCompositeChk.isSelected());
            invalidate();
            repaint();
        private class TestCanvas
        extends JComponent {
            public TestCanvas() {
                setSize(300, 300);
                setPreferredSize(getSize());
            public void paint(Graphics gfx) {
                Dimension size = getSize();
                Graphics2D gfx2D = (Graphics2D) gfx;
                gfx2D.setColor(Color.GRAY);
                gfx2D.fillRect(0, 0, size.width, size.height);
                RenderingHints rh = null;
                if(useAntialiasingChk.isSelected()) {
                    rh = gfx2D.getRenderingHints();
                    gfx2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                Rectangle r = clippingShape.getBounds();
                //gfx2D.setColor(Color.GREEN);
                //gfx2D.drawRect(r.x, r.y, r.width, r.height);
                gfx2D.setColor(Color.YELLOW);
                gfx2D.fill(clippingShape);
                Composite oldComposite = null;
                if(useCompositeChk.isSelected()) {
                    oldComposite = gfx2D.getComposite();
                    gfx2D.setComposite(composite);
                gfx2D.setColor(Color.ORANGE);
                gfx2D.fillRect(r.x, r.y, r.width + 1, r.height + 1);
                if(oldComposite != null)
                    gfx2D.setComposite(oldComposite);
                if(rh != null)
                    gfx2D.setRenderingHints(rh);
        public class MergeComposite
        implements Composite, CompositeContext {
            public CompositeContext createContext(ColorModel srcColorModel,
                                                  ColorModel dstColorModel,
                                                  RenderingHints hints) {
                return this;
            public void compose(Raster src,
                                Raster dstIn,
                                WritableRaster dstOut) {
    //            dumpRaster("SRC   ", src);
    //            dumpRaster("DSTIN ", dstIn);
    //            dumpRaster("DSTOUT", dstOut);
    //            System.out.println();
                if(dstIn != dstOut)
                    dstOut.setDataElements(0, 0, dstIn);
                if(!useCompositeContextChk.isSelected())
                    return;
                int[] srcPixel = null;
                int[] dstPixel = null;
                int w = Math.min(src.getWidth(), dstIn.getWidth());
                int h = Math.min(src.getHeight(), dstIn.getHeight());
                int xMax = src.getMinX() + w;
                int yMax = src.getMinY() + h;
                for(int x = src.getMinX(); x < xMax; x++) {
                    for(int y = src.getMinY(); y < yMax; y++) {
                        try {
                            // THIS MIGHT NOT WORK ALL THE TIME
                            int cx = x - dstIn.getSampleModelTranslateX();
                            int cy = y - dstIn.getSampleModelTranslateY();
                            if(!clippingShape.contains(cx, cy)) {
                                dstPixel = dstIn.getPixel(x, y, dstPixel);
                                dstOut.setPixel(x, y, dstPixel);
                            else {
                                srcPixel = src.getPixel(x, y, srcPixel);
                                dstPixel = dstIn.getPixel(x, y, dstPixel);
                                float mergeFactor = 1.0f * (cy - 100) / 100;
                                dstPixel[0] = merge(mergeFactor, srcPixel[0], dstPixel[0]);
                                dstPixel[1] = merge(mergeFactor, srcPixel[1], dstPixel[1]);
                                dstPixel[2] = merge(mergeFactor, srcPixel[2], dstPixel[2]);
                                dstOut.setPixel(x, y, dstPixel);
                        catch(Throwable t) {
                            System.out.println(t.getMessage() + " x=" + x + " y=" + y);
            protected int merge(float mergeFactor, int src, int dst) {
                return (int) (mergeFactor * src + (1.0f - mergeFactor) * dst);
            protected void dumpRaster(String lbl,
                                      Raster raster) {
                System.out.print(lbl + ":");
                System.out.print(" mx=" + format(raster.getMinX()));
                System.out.print(" my=" + format(raster.getMinY()));
                System.out.print(" rw=" + format(raster.getWidth()));
                System.out.print(" rh=" + format(raster.getHeight()));
                System.out.print(" tx=" + format(raster.getSampleModelTranslateX()));
                System.out.print(" ty=" + format(raster.getSampleModelTranslateY()));
                System.out.print(" sm=" + raster.getSampleModel().getClass().getName());
                System.out.println();
            protected String format(int value) {
                String txt = Integer.toString(value);
                while(txt.length() < 4)
                    txt = " " + txt;
                return txt;
            public void dispose() {
        public static void main(String[] args) {
            new TestCustomComposite2();
    }

  • Creating search field for a list component

    i have created a glossary of terms using the list component and populating it via an XML file.
    what i would like to do is create a search field that as the user types in the search bar if there are any matching entries in the list, the focus/selection jumps to that particular item in list. i don't want to clear the list just go to the item that matches.
    i would like it to be predictive so if i have these entries:
    samson
    seek
    seether
    south
    and the user types "s" in the search box to the first "s" entry in the list (samson) is selected, if they type "se" the selection jumps to the first entry with "se" in it (seek) if they type "seet" the selection jumps to "seether" and so on.
    i have absolutely no idea how to do it, but more importantly...is this possible?
    i have attached the sample files that i have been working on.
    thanks in advance

    You need the lowercase. the keyCode of the keybpardevent returns the key's uppercase charcode. So the A-key allways returns 65. Therefore convert keycode to char and to lowercase before appending after what's allready there in the field.
    To have the user not have to type the words with proper casing, convert the label to lowercase before doing the indexOf search.
    import fl.data.DataProvider;
    //-------declare vars----------------
    var firstClick:Boolean=true;
    var loader:URLLoader = new URLLoader();
    var dp:DataProvider = new DataProvider();
    var xml:XML;
    //-------add listeners---------------
    loader.addEventListener(Event.COMPLETE,onLoaded);
    glossary.lb.addEventListener(Event.CHANGE, itemChange);
    glossary.search_bar.addEventListener( FocusEvent.FOCUS_IN, clearbox );
    glossary.search_bar.addEventListener( KeyboardEvent.KEY_DOWN, onSearch );
    //-------functions--------------------
    //clears the input field when the user clicks into it for the first time
    //eliminates the need for them to highlight and delete the "type search here" text
    function clearbox( e:FocusEvent ):void {
        if (firstClick==true) {
            glossary.search_bar.text="";
            firstClick=false;
    //populate description box with definition when item is selected
    function itemChange(e:Event):void {
        glossary.ta.text=glossary.lb.selectedItem.data;
    //creates the data provider for the list based off external XML file
    //arranges the items in alphabetical order
    //populates the list
    function onLoaded(e:Event):void {
        xml=new XML(e.target.data);
        var il:XMLList=xml.channel.item;
        for (var i:uint=0; i<il.length(); i++) {
            dp.addItem({data:il.description.text()[i],label:il.title.text()[i]});
        dp.sortOn("label");
        glossary.lb.dataProvider=dp;
        glossary.ta.text="Please make a selection below";
    //dynamic search engine to locate items in the list
    function onSearch( e:KeyboardEvent ):void {
        trace( e.keyCode );
        var input:String = ( glossary.search_bar.text + String.fromCharCode( e.keyCode ).toLowerCase() );
        trace( input )
        for (var i:uint = 0; i < dp.length; i++) {
            if (dp.getItemAt(i).label.toLowerCase().indexOf(input)==0) {
                glossary.lb.selectedIndex=i;
                glossary.ta.text=glossary.lb.selectedItem.data;
                break;
            } else {
                glossary.ta.text="no matching searches";
    //-------load the xml--------------
    loader.load(new URLRequest("xml/movie1.xml"));

  • List Component multipleSelection and wmode

    I'm trying to use the list component with multipleSelection
    set to true; however when I set wmode to transparent in FireFox the
    multiple selection breaks. It appears to function properly in IE.
    Does anyone know of a workaround for this?
    Thanks in advance!

    "however, we need wmode set to false"
    So what exactly is the problem then... if you need wmode set
    to false, then don't add the param and you won't have it.

  • List Component : Dragging position marker

    If you setup a basic List component and add support for
    dragEnabled and custom drop handling with a custom itemRenderer i
    have come across the following issue.
    When you drag an item within a ListBase (List, DataGrid,
    etc..) component, you get a position marker showing you where you
    are trying to drop the item. Somehow during my customization
    process of the List component this marker no longer appears.
    Does anyone know what it is called?
    Is there a class that i can use within my custom itemRenderer
    to bring this functionality back.??
    Any help would be appreciated!
    Thanks, Dustin

    When I test this in Firefox, I get the following error message:
    TypeError: Error #1034: Type Coercion failed: cannot convert flash.display::SimpleButton@115ec431 to fl.controls.Button.

  • Using a composite component from an xhtml that is included in another xhtml

    JBoss 7.1.1
    JSF 2.1
    I have the following composite component:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <ui:component xmlns="http://www.w3.org/1999/xhtml"
            xmlns:h="http://java.sun.com/jsf/html"
            xmlns:composite="http://java.sun.com/jsf/composite"
            xmlns:f="http://java.sun.com/jsf/core"
            xmlns:ui="http://java.sun.com/jsf/facelets"
            xmlns:rich="http://richfaces.org/rich">
            <composite:interface>
                <composite:attribute name="for" required="true" />
            </composite:interface>
            <composite:implementation>
                <rich:panel styleClass="aas-msg-tt-p">
                    <rich:message id="#{cc.attrs.for}-msg"
                        for="#{cc.attrs.for}" />
                    <rich:tooltip id="#{cc.attrs.for}-msg-tt">
                        <rich:message for="#{cc.attrs.for}"
                            styleClass="aas-rf-det-tooltip" />
                    </rich:tooltip>
                </rich:panel>
            </composite:implementation>
    </ui:component>It is in WebContent/resources/aas-composite/messagetooltip.xhtml ( where WebContent is the root directory or root context directory of the deployed WAR )
    h3. *1. Using the composite component and working as expected*
    If I use the composite component directly as follows, it all works:
    1) Create test.xhtml in WebContent
    2) Content of test.xhtml as follows:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:a4j="http://richfaces.org/a4j"
          xmlns:rich="http://richfaces.org/rich"
          xmlns:aas="http://java.sun.com/jsf/composite/aas-composite">
    <h:head>
        <meta http-equiv="X-UA-Compatible" content="IE=8" />
    </h:head>
    <h:body>
        <h:outputStylesheet library="css" name="richfacesoverrides.css"/>
        <h:form id="testform">
           <table>
                <tr>
                    <td><aas:messagetooltip for="id2"/></td>
                    <td><h:outputLabel>Input 2: </h:outputLabel></td>
                    <td><h:selectOneMenu id="id2"
                            required="true"
                            requiredMessage="Cause of Death is required"
                            value="${death.causeOfDeath}">
                           <f:selectItem itemValue="" itemLabel="-- Select One --" />
                           <f:selectItem itemValue="COD01" itemLabel="Cancer" />
                           <f:selectItem itemValue="COD02" itemLabel="Diabetes" />
                           <f:selectItem itemValue="COD11" itemLabel="Other" />
                        </h:selectOneMenu>
                    </td>
                </tr>
           </table>
           <h:commandButton id="submit" value="Submit"/><br/>
    </h:form>
    </h:body>
    </html>3) Deploy and test, all good
    h3. *2. Using the composite component but NOT working as expected*
    Now if I use the composite component as follows:
    4) Create XHTML file called includeThisFromRoot.xhtml under WebContent directory
    5) with content as follows:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:a4j="http://richfaces.org/a4j"
          xmlns:rich="http://richfaces.org/rich"
          xmlns:aas="http://java.sun.com/jsf/composite/aas-composite">
        <ui:composition>
           <table>
                <tr>
                    <td><aas:messagetooltip for="id2"/></td>
                    <td><h:outputLabel>Input 2: </h:outputLabel></td>
                    <td><h:selectOneMenu id="id2"
                            required="true"
                            requiredMessage="Cause of Death is required"
                            value="${death.causeOfDeath}">
                           <f:selectItem itemValue="" itemLabel="-- Select One --" />
                           <f:selectItem itemValue="COD01" itemLabel="Cancer" />
                           <f:selectItem itemValue="COD02" itemLabel="Diabetes" />
                           <f:selectItem itemValue="COD11" itemLabel="Other" />
                        </h:selectOneMenu>
                    </td>
                </tr>
           </table>
           <h:commandButton id="submit" value="Submit"/><br/>
        </ui:composition>
    </html>6) Make a copy test.xhtml, but call the new one testWithInclude.xhtml, with content as follows:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:a4j="http://richfaces.org/a4j"
          xmlns:rich="http://richfaces.org/rich"
          xmlns:aas="http://java.sun.com/jsf/composite/aas-composite">
    <h:head>
        <meta http-equiv="X-UA-Compatible" content="IE=8" />
    </h:head>
    <h:body>
        <h:outputStylesheet library="css" name="richfacesoverrides.css"/>
        <h:form id="testform">
            <ui:include src="includeThisFromRoot.xhtml" />
        </h:form>
    </h:body>
    </html>h3. Summary of change
    You can see here that I simply moved all of the content between the form tags from the original XHTML to a separate XHTML, and included that separate XHTML using <ui:include>.
    h3. Result
    7) Deploy and access testWithInclude.jsf from browser, and I get:
    15:17:55,310 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/richfacestest].[Faces Servlet]] (http--0.0.0.0-8081-5) Servlet.service() for servlet Faces Servlet threw exception: javax.faces.view.facelets.TagException: /includeThisFromRoot.xhtml @13,52 <aas:messagetooltip> Tag Library supports namespace: http://java.sun.com/jsf/composite/aas-composite, but no tag was defined for name: messagetooltip
            at com.sun.faces.facelets.compiler.CompilationManager.pushTag(CompilationManager.java:304) [jsf-impl-2.1.7-jbossorg-2.jar:]
            at com.sun.faces.facelets.compiler.SAXCompiler$CompilationHandler.startElement(SAXCompiler.java:266) [jsf-impl-2.1.7-jbossorg-2.jar:]
            at org.apache.xerces.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:496)
            at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:180)
            at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:810)
            at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:275)
            at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1653)
            at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324)
            at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:845)
            at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:768)
            at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108)
            at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1196)
            at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:555)
            at org.apache.xerces.jaxp.SAXParserImpl.parse(SAXParserImpl.java:289)
            at javax.xml.parsers.SAXParser.parse(SAXParser.java:195) [rt.jar:1.7.0_09]
            at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:434) [jsf-impl-2.1.7-jbossorg-2.jar:]
            at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:410) [jsf-impl-2.1.7-jbossorg-2.jar:]
            at com.sun.faces.facelets.compiler.Compiler.compile(Compiler.java:124) [jsf-impl-2.1.7-jbossorg-2.jar:]
            at com.sun.faces.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:305) [jsf-impl-2.1.7-jbossorg-2.jar:]
            at com.sun.faces.facelets.impl.DefaultFaceletFactory.access$100(DefaultFaceletFactory.java:93) [jsf-impl-2.1.7-jbossorg-2.jar:]
            at com.sun.faces.facelets.impl.DefaultFaceletFactory$1.newInstance(DefaultFaceletFactory.java:160) [jsf-impl-2.1.7-jbossorg-2.jar:]What gives ? Am I missing something simple ?

    I think I may have found a workaround.
    In the XHTML file that is included and using the composite component, add the namespace as part of the custom component, like so:
    <aas:messagetooltip xmlns:aas="http://java.sun.com/jsf/composite/aas-composite" for="id2"/>So that it now becomes:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:ui="http://java.sun.com/jsf/facelets"
          xmlns:a4j="http://richfaces.org/a4j"
          xmlns:rich="http://richfaces.org/rich"
          xmlns:aas="http://java.sun.com/jsf/composite/aas-composite">
        <ui:composition>
           <table>
                <tr>
                    <td><aas:messagetooltip xmlns:aas="http://java.sun.com/jsf/composite/aas-composite" for="id2"/></td>
                    <td><h:outputLabel>Input 2: </h:outputLabel></td>
                    <td><h:selectOneMenu id="id2"
                            required="true"
                            requiredMessage="Cause of Death is required"
                            value="${death.causeOfDeath}">
                           <f:selectItem itemValue="" itemLabel="-- Select One --" />
                           <f:selectItem itemValue="COD01" itemLabel="Cancer" />
                           <f:selectItem itemValue="COD02" itemLabel="Diabetes" />
                           <f:selectItem itemValue="COD11" itemLabel="Other" />
                        </h:selectOneMenu>
                    </td>
                </tr>
           </table>
           <h:commandButton id="submit" value="Submit"/><br/>
        </ui:composition>
    </html>I tried this after finding a similar bug about nested composite components, which I do not use, but thought I would give it a try:
    http://stackoverflow.com/questions/10898906/myfoo-tag-library-supports-namespace-http-java-sun-com-jsf-composite-mycom
    http://stackoverflow.com/questions/9735593/nested-composite-component-broken-in-jboss-7-1-1
    Have to keep track of all these workarounds that I am doing.

  • List Component - Query

    Hi all,
    I have a list component and I have set up initial query in advance search, which generates the listing of the articles.
    Now I am planning to add a search box and upon providing the new search text I would like to search again and utilizing same list component I would like to display new result list.
    I looked a the init.jsp and found the place where I think it executes the initial query?
    I tried to override source and query string but it is not taking an effect.  Also I am not able to find the jar for "com.day.cq.wcm.foundation.List", I wanted to decompile and wanted to see how querys are executed.
    List list = new List(slingRequest, new PageFilter());
    list.setQuery("Test");
    list.setSource("search");
    Any pointers would be helpful!
    Thanks in advance.

    I am workiing on a similiar workflow for an upcoming artilce that dicusses how to query the AEM CQ JCR: http://scottsdigitalcommunity.blogspot.ca/2013/02/querying-adobe-experience-manager-data.h tml .
    This sample app queries the JCR for customer data, supports filtering, and displays the result set in a grid contol located in the client:
    Although this article will not be posted until Feb 23 --I can provide a few pointers. Like most workflows in computer science -- you can  perform a task in more than 1 way. I find that you get more power when you wrap the JCR Query Manager API within an OSGi component and develop the service to expose an operation that queries the JCR and returns the result set.
    You can return the result set to the client and display the data in a web page - similiar to the pic above. Of course -- you can do the same workflow using sling -- its a matter of preferece IMHO. I prefer to develop OSGi services to do the heavy lifting and let the client call the service and display the data.
    For example - to call the OSGI service from a client:
    com.adobe.aem.CustomerService cs = sling.getService(com.adobe.aem.CustomerService .class);
    String XML = cs.getCustomerData(filter) ;
    In this workflow -- the query results are stored in an XML DOM and returned to the client -- where the data is parsed and displayed. The complete artilce will be posted next Fri.
    Here is a snippet of the backend Java logic that is wrapped in the OSGi and queries the JCR that is called from the client:
    public Document getCustomerData(String filter) {
                        Customer cust = null;
                         List<Customer> custList = new ArrayList<Customer>();
                        try {
                           Session session = this.repository.loginAdministrative(null);
                           // Obtain the query manager for the session ...
                     javax.jcr.query.QueryManager queryManager = session.getWorkspace().getQueryManager();
                     //Setup the query based on user input -- 3 options are   All Customers,
                     //Active Customer or Past Customer
                     String sqlStatement="";
                               //Setup the query to get all corresponding customer nodes -- which are of node type nt:unstructured
                     if (filter.equals("All Customers"))
                               sqlStatement = "SELECT * FROM [nt:unstructured] WHERE CONTAINS(desc, 'Customer')";
                     else if(filter.equals("Active Customer"))
                                         sqlStatement = "SELECT * FROM [nt:unstructured] WHERE CONTAINS(desc, 'Active')";
                     else if(filter.equals("Past Customer"))
                                        sqlStatement = "SELECT * FROM [nt:unstructured] WHERE CONTAINS(desc, 'Past')";
             //Execute the query and get the results ...
                     javax.jcr.query.Query query = queryManager.createQuery(sqlStatement,"JCR-SQL2");
                     javax.jcr.query.QueryResult result = query.execute();
                     //Iterate over the nodes in the results ...
                     javax.jcr.NodeIterator nodeIter = result.getNodes();
                     while ( nodeIter.hasNext() ) {
                                              //For each node-- create a customer instance
                                              cust = new Customer();
                                              javax.jcr.Node node = nodeIter.nextNode();
                                              //Set all Customer object fields
                                              cust.setCustFirst(node.getProperty("firstName").getString());
                                              cust.setCustLast(node.getProperty("lastName").getString());
                                              cust.setCustAddress(node.getProperty("address").getString());
                                              cust.setCustDescription(node.getProperty("desc").getString());
                                              //Push Customer to the list
                                              custList.add(cust);
                     // Save the session changes and log out
                           session.save();
                           session.logout();
         //Return the customer data within an XML DOM
                           return toXml(custList);
                  catch(Exception e)
                             e.printStackTrace();
                  return null;
    Hope this helps..

  • Should I use Standard C++ Containers and Stuff for games and other real time activities?

    Hello,
    I'm a C++ developer using VS 2012 and VS 2010 for developing AAA titles. I have read about not using STL and other stuff provided in the standard headers that come with VS. I read most of the stuff on the websites based on game programming and some
    are really from the people well known in the industry. I have seen cases where they wont even use vector, list, map and others and not even use utility functions and algorithms. In such cases they write those containers and stuff themselves which has almost
    the same interface and so much of debug and implementation time spent on such huge code.
    I have two questions:
    1: Isn't the C++ implementation that comes with VS optimized for the platform for better performance? Isn't it using some intrinsic functions that people on the client end doesn't know about and supplying their own implementation would indeed be
    more slower in basic container operations such as insert, remove, find, swap, copy? Lets assume that we supply our own custom allocators for faster memory management to every container that we use. Also, they take care of fragmentation, alignment and stuff.
    Why develop custom containers with almost same interface, why not spend that time on writing allocators and other stuff that might actually help?
    2: There are times when we include a lot, a lot, of unnecessary stuff through the standard headers in a huge code base. Unnecessary, because we only needed a thing or two from such huge headers including other huge headers and so on. Now, I know templates
    aren't instantiated unless used, same goes for the members functions inside them and blah blah. Since, these are precompiled headers, it is safe to assume that there is no compile time hit for that unnecessary stuff. My question is, is there any hidden effect
    of such inclusions on code size (executable) that grows with the huge growth of the code base? In my opinion there shouldn't be, but I wanna know I'm not mistaken just in case. 

    Hi
    I can tell you a story about one of our projects. We had to implement a block management system for harddisks (like the parts of file systems that allocate, free blocks and do the bookkeeping stuff). Now, one guy was convinced, that we should use the STL,
    because it's easy to use and very well optimized and things like that. An other one said, that he would implement it by hand. So we decided to do both for a little test. The result was, that the hand implemented thing was much easier to write and much faster...
    and the one using STL saw, that some classes were so slow, that he couldn't believe it... he then tryed to build some classes by hand and exchange them (e.g. array classes and stuff like that) and it was way faster than the STL and he wrote them in minutes
    (!)... since then nobody wanted to use STL again... we don't even try it. It ended that we wrote our own string and array classes and stuff like that... easy little things that we understand. Now it's easy to use and fast and still flexible, because we know
    what it's doing...
    ... but, that's just a story about our development and of course, we're often programming very close to the hardware and also using assembler languages often... so, I don't know what this tells us... you have to decide :-)
    Rudolf

  • Share Point Custom List - Submit item to folder

    hello,
    I have create a custom list on my SharePoint 2013 site and customized the infopath form. I have disabled the submit/Save buttons on the ribbon and set the Form Submit settings to rules and actions. I have then added "Save" buttons on the form that
    have actions to submit to the list's Main data connection.
    There are three departments that will use this list and users in a department should only be able to see items within their department. So I have created folders for these three departments and defined permissions at the folder level. Now how can I submit
    the infopath form such that the form automatically gets submitted to the respective folder? I am unable to add a submit data connection to a customized list form and the Main data connection is disabled for edit.
    I am however able to achieve this in a document library. But was wondering if there are ways to achieve this with a list since we are almost completed with the development of this functionality using list items.

    Anybody?
    I even tried writing a ItemAdding even reciever that would cause the item to be saved in the respective folder instead of the root. But I am not able to figure out the best way to do this.

Maybe you are looking for