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?
MercuryManHello,
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,
Manikandanhttp://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?
ThanksThank 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 advanceYou 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, DustinWhen 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. -
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.. -
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
-
How can I change my credit card information of my apple ID?
how can I change my credit card information of my apple ID?
-
Need Help Avoiding a Catastrophe
Hey, my mom got an iPad while I was away before the iOS 4.2.1 update and she had them set up the iPad at the apple store for her when she bought it, so it's never been synced to an actual computer before. Now that I'm home I'm trying to update her iP
-
IPhoto photo book picture quality
I am hoping someone could answer my question. I recently ceated a photo book through iphoto. A majority of the photos used had been edited to make them brighter. I recieved the book today, only to find that the photos seemed to of been printed
-
It keeps crashing when I try to play farmville on Facebook. I have tried uninstall & re-install, and everything else that is suggested. My shockwave player is uptodate. I am very frustrated and would appreciate this problem being corrected as soon as
-
Question about safari image files in 7.1
I am running os X 10.9.5 and safari 7.1. After I upgraded to safari 7.1 I noticed that if I open an image file into a new tab it is centered in the page. Previously they have been aligned left. Is this normal? Can I change the alignment to the le