[richfaces-issues] [JBoss JIRA] Closed: (RF-4302) Added ShowValueInView attribute to InplaceSelect (see desc for details)

Tsikhon Kuprevich (JIRA) jira-events at lists.jboss.org
Tue Dec 9 09:52:48 EST 2008


     [ https://jira.jboss.org/jira/browse/RF-4302?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tsikhon Kuprevich closed RF-4302.
---------------------------------



> Added ShowValueInView attribute to InplaceSelect  (see desc for details)
> ------------------------------------------------------------------------
>
>                 Key: RF-4302
>                 URL: https://jira.jboss.org/jira/browse/RF-4302
>             Project: RichFaces
>          Issue Type: Patch
>    Affects Versions: 3.2.2
>            Reporter: Greg Zoller
>            Assignee: Tsikhon Kuprevich
>             Fix For: 3.3.0
>
>
> (code mods made to 3.2.2.BETA5)
> Have you ever wanted a select widget that would allow for verbose labels in the pull-down but show only the (shorter) value in the input field after the user makes a selection?  This is a big deal if you need editable selection fields in a data table or other space-constrained display.  Before the addition of this feature you had the option only of seeing labels or values (by not specifying labels in your SelectItems), but not the ability to mix both.
> For example I have a table that includes a field holding a code, selectable from an InplaceSelect widget.  There's not enough real estate to explain what the code is though.  With my new ShowValueInView attribute set true I can show the user verbose, descriptive labels in the pull-down but only the code (the value) when they make their selection.  Cool.
> I'm not sure how to make an official patch, so here's a list of the modded files (just 3):
> inplaceselect.xml --  Added new <property> clause:
>        		<property>
>        			<name>showValueInView</name>
>        			<classname>boolean</classname>
>        			<description>
>        				If true show the SelectItem labels in the InplaceSelect's pull-down list but display the value in the field in view mode once an item is selected
>        			</description>
> 	            <defaultvalue>false</defaultvalue>
>        		</property>	
> inplaceselect.js -- Added  1 'if' statement to ApplyTmpValue:
> 	applyTmpValue : function() {
> 		if (this.comboList.activeItem) {
> 			var userLabel = this.comboList.activeItem.innerHTML.unescapeHTML();
> 			this.currentItemValue = this.comboList.activeItem.value;
> 			if( this.attributes.showValueInView == true ) {
> 				userLabel = this.currentItemValue;
> 			}
> 			this.tempValueKeeper.value = userLabel;
> 			this.comboList.selectedItem = this.comboList.activeItem;
> 		}
> 	},
> inplaceselect.jspx -- modifed 2 sections:
> (1) -- scriptlet near top of file, added 1 'if' statement:
> <jsp:scriptlet>
> 		<![CDATA[
> 		         
> 		Object value = component.getSubmittedValue(); 
> 		if(value == null) {
> 			value = component.getAttributes().get("value");
> 		   	value = getConvertedStringValue(context, component,value);
> 		}	
> 		String fieldLabel = getSelectedItemLabel(context, component);
> 	   	String fieldValue = (String)value;
> 	   	if( ((Boolean)component.getAttributes().get("showValueInView")).booleanValue() == true ) {
> 		   	fieldLabel = fieldValue;
> 	   	}
> (2) Around line 218 or so...added showValueInView attribute to list passed to Richfaces.InplaceSelect constructor
> 									 new Richfaces.InplaceSelect(new Richfaces.InplaceSelectList('list#{clientId}', 'listParent#{clientId}', true, 
> 																 								 Richfaces.InplaceSelect.CLASSES.COMBO_LIST, '#{component.attributes["listWidth"]}', '#{component.attributes["listHeight"]}',  #{this:getItemsTextAsJSArray(context, component,items)}, null, 
> 																 								'#{clientId}inplaceTmpValue', 'shadow#{clientId}', 0, 0, #{encodedFieldValue}), 
> 																	'#{clientId}', '#{clientId}inplaceTmpValue', 
> 																	'#{clientId}inplaceValue', '#{clientId}tabber',
> 																	 {defaultLabel : '#{component.attributes["defaultLabel"]}', 
> 								  									  showControls : #{component.attributes["showControls"]},
> 																	  editEvent : '#{component.attributes["editEvent"]}',
> 																	  verticalPosition : '#{component.attributes["controlsVerticalPosition"]}',
> 																	  horizontalPosition : '#{component.attributes["controlsHorizontalPosition"]}',
> 																	  inputWidth : '#{component.attributes["selectWidth"]}',
> 																	  minInputWidth : '#{component.attributes["minSelectWidth"]}',
> 																	  maxInputWidth : '#{component.attributes["maxSelectWidth"]}',
> 																	  openOnEdit: #{component.attributes["openOnEdit"]},
> 																	  showValueInView: #{component.attributes["showValueInView"]},
> 																	  closeOnSelect: true}, 
> 																	 {oneditactivation : #{this:getAsEventHandler(context, component, "oneditactivation")}, 
> 							  										 onviewactivation : #{this:getAsEventHandler(context, component, "onviewactivation")}, 
> 							  										 oneditactivated : #{this:getAsEventHandler(context, component, "oneditactivated")}, 
> 							  										 onviewactivated : #{this:getAsEventHandler(context, component, "onviewactivated")},
> 							  										 onchange : #{this:getAsEventHandler(context, component, "onchange")}}, 
> 																	Richfaces.InplaceSelect.CLASSES, 
> 																	['#{clientId}bar', '#{clientId}ok', '#{clientId}cancel', '#{clientId}buttons', '#{clientId}btns_shadow'], '#{clientId}inselArrow');
> That's it!
> I hope others will find this little tweak as useful as I did.  So far I haven't found any other select-type widget that allows this hibrid approach.
> My apologies if this isn't the right way to submit code.  First time :-)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the richfaces-issues mailing list