tag:blogger.com,1999:blog-28870195632537873332024-02-08T11:24:59.262-08:00smart gwt tips tricks trucos Snippetssmart gwt tips tricks trucos Snippetsjames jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.comBlogger37125tag:blogger.com,1999:blog-2887019563253787333.post-84682969193137755482013-07-08T14:36:00.001-07:002016-09-25T15:28:42.107-07:00recordSummaryFunction smartgwt from backend<div dir="ltr" style="text-align: left;" trbidi="on">
<b>how to recordSummaryFunction smartgwt from backend</b><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//$columnas_raw->type = 'integer';<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if( $columna == "impressions" ){<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$columnas_raw->recordSummaryFunction = "multiplier";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$columnas_raw->summaryFunction = "sum";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$columnas_raw->showGridSummary = true;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$columnas_raw->showGroupSummary= true;<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-33269303674944853082013-05-27T11:13:00.000-07:002016-09-25T15:28:42.046-07:00how to access the DOM gwt smartclient<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="post-text" style="background-color: white; border: 0px; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; margin: 0px 5px 5px 0px; padding: 0px; vertical-align: baseline; width: 660px;">
<div style="background-color: transparent; border: 0px; clear: both; margin-bottom: 1em; padding: 0px; vertical-align: baseline; word-wrap: break-word;">
To access the DOM of your page you can call <code style="background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin: 0px; padding: 1px 5px; vertical-align: baseline;">Document.get()</code>, which has a convenience method for finding an element by it's id <code style="background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin: 0px; padding: 1px 5px; vertical-align: baseline;">Document.get().getElementById("test");</code></div>
<div style="background-color: transparent; border: 0px; clear: both; margin-bottom: 1em; padding: 0px; vertical-align: baseline; word-wrap: break-word;">
Of course, you should keep a reference to this element so as not to have to search through the DOM everytime you want to access it, because this is brutal.</div>
<pre style="background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; vertical-align: baseline; width: auto;">private Element testDiv = Document.get().getElementById("test");
...
testDiv.setInnerHTML("Some html");
...
testDiv.setInnerHTML("Some other html");
</pre>
<div style="background-color: transparent; border: 0px; clear: both; margin-bottom: 1em; padding: 0px; vertical-align: baseline; word-wrap: break-word;">
But once you have a reference to this element, calling setInnerHTML is the most efficient way to do what you want. I'm not sure why you think this is brutal. This is probably even more efficient than when you call a method on a widget to change it's content, like <code style="background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin: 0px; padding: 1px 5px; vertical-align: baseline;">setText(" ...")</code> on a <code style="background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin: 0px; padding: 1px 5px; vertical-align: baseline;">TextBox</code> for example, because these methods usually check the value passed as parameter for security.</div>
<div style="background-color: transparent; border: 0px; clear: both; margin-bottom: 1em; padding: 0px; vertical-align: baseline; word-wrap: break-word;">
Security could also be a concern for you, depending on what the user can do. But usually if a user can modify the HTML in your page that's a concern. You might want to look at GWT's SafeHTML feature.</div>
<div style="background-color: transparent; border: 0px; clear: both; margin-bottom: 1em; padding: 0px; vertical-align: baseline; word-wrap: break-word;">
If you're looking for RichText components, you can look at GWT's RichTextArea for example. But this type of component is usually not well supported by all browsers and will take more resources than what you're doing already so I don't recommend it.</div>
</div>
</div>
james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-39710852110085059922013-05-23T15:18:00.002-07:002016-09-25T15:28:42.061-07:00gwt function formatString<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
How to use <b>formatString</b> function<br />
<br />
<br />
if(record==null || value == null){<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(record!=null && record.isGroupSummary!=null && record.isGroupSummary){<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>return null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}else{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>return "NA";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
</div>
james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-91313249466535091612013-05-23T15:03:00.003-07:002016-09-25T15:28:42.127-07:00How to Detect if is Group Summary on record summaryFunction<div dir="ltr" style="text-align: left;" trbidi="on">
Hi guys, very ease<br />
<br />
<br />
on summaryFunction just add record.isGroupSummary or record.isGridSummary<br />
<br />
<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>case 'clicks': <br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$columnas_raw->title <span class="Apple-tab-span" style="white-space: pre;"> </span>= 'Clicks';<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$columnas_raw->type <span class="Apple-tab-span" style="white-space: pre;"> </span>= 'float';<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$js <span class="Apple-tab-span" style="white-space: pre;"> </span>= " return isc.Format.toUSString(value)";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$columnas_raw->formatCellValue <span class="Apple-tab-span" style="white-space: pre;"> </span>= $js ;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//$columnas_raw->recordSummaryFunction<span class="Apple-tab-span" style="white-space: pre;"> </span>= "multiplier";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>//$columnas_raw->summaryFunction <span class="Apple-tab-span" style="white-space: pre;"> </span>= "sum";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$columnas_raw->showGridSummary <span class="Apple-tab-span" style="white-space: pre;"> </span>= true;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$columnas_raw->showGroupSummary<span class="Apple-tab-span" style="white-space: pre;"> </span>= true;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$js <span class="Apple-tab-span" style="white-space: pre;"> </span>= " return '<div style=\"text-align: left;\">Total<br> <div style=\"font-weight: normal;\">all -- 32 Product(s)</div> Client/Network<br><div style=\"font-weight: normal;\">-- unallocated data</div></div>' ";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>$columnas_raw->summaryFunction <span class="Apple-tab-span" style="white-space: pre;"> </span>= $js ;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if (record.isGroupSummary || record.isGridSummary) return "&nbsp;";<br />
<br />
</div>
james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-23551474505325905242013-03-05T12:29:00.001-08:002016-09-25T15:28:42.036-07:00addDataChangedHandler addDataArrivedHandler<div dir="ltr" style="text-align: left;" trbidi="on">
<br /> this.grid = listGrid;<br /> this.ds = (PagerDataSource) listGrid.getDataSource();<br /> <br /> ResultSet dataProperties = new ResultSet(); <br /> dataProperties.addDataChangedHandler(new DataChangedHandler() { <br /> @Override<br /> public void onDataChanged(DataChangedEvent event) {<br /> System.out.println(" onDataChanged" );<br /> <br /> RecordList data = grid.getDataAsRecordList(); <br /> if (data != null && data instanceof ResultSet && ((ResultSet)data).lengthIsKnown() && data.getLength() > 0) { <br /> totalsLabel.setContents( new Integer(ds.getTotalRows()).toString() + " Records"); <br /><br /> System.out.println(" Total paginas :" + new Integer(ds.getTotalPages()).toString() );<br /> System.out.println(" numero de pagina :"+ new Integer(ds.getCurrentPage()).toString() );<br /> System.out.println(" rows en esta pagina :" + new Integer(ds.getTotalRows()).toString() );<br /> System.out.println(" Start row :" + new Integer(ds.getStartRow()).toString() );<br /> System.out.println(" End row :" + new Integer(ds.getEndRow()).toString() ); <br /> <br /> } <br /> }<br /> }); <br /> grid.setDataProperties(dataProperties); <br /> <br /> /*listGrid.addDataArrivedHandler(new DataArrivedHandler() {<br /> @Override<br /> public void onDataArrived(DataArrivedEvent event) {<br /> System.out.println(" onDataArrived" );<br /> }<br /> });<br /> System.out.println(" Paginator f" );<br /> */<br /> <br /> </div>
james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-35504111985642471762011-12-19T15:27:00.001-08:002016-09-25T15:28:42.055-07:00response.getData - READ DATA FROM RESPONDE<div dir="ltr" style="text-align: left;" trbidi="on">
<pre class="alt2" style="border: 1px inset; height: 498px; margin: 0px; overflow: auto; padding: 6px; width: 640px;"> Record[] records = response.getData();
if(records != null && records.length > 0)
{
// I have verified that by this point in the code records.length is 1
if(records[0].getAttribute("key") != null)
{
if(records[0].getAttribute("value") != null)
{
SC.say(records[0].getAttribute("key") + " is " + records[0].getAttribute("value");
}
else
{
SC.say("value was null");
}
}
else
{
SC.say("Invalid response. Did not contain key");
}
}
else
{
SC.say("records was null or empty");
}</pre>
</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-86652947082657550342011-06-22T08:24:00.000-07:002016-09-25T15:28:42.110-07:00Create Custom Dialog box smargwt<div dir="ltr" style="text-align: left;" trbidi="on">Create Custom Dialog box<br />
<br />
1. replace the dialog class with window class, as the dialog class has no really advantage (as far as I have experienced)<br />
2. use the addMember methode instead the addChild, with this one all layout methods are effectiv.<br />
<br />
Code:<br />
// first final Window purchaseDlg = new Window();<br />
<br />
// second, with the vpanel and LayoutSpacer removed (I don't think, you need them any longer)<br />
HLayout hpanel = new HLayout();<br />
hpanel.setLayout(Alignment.CENTER);<br />
hpanel.addMember(button);<br />
purchaseDlg.addItem(hpanel);<br />
<br />
</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-67921156977065256892011-06-20T11:49:00.000-07:002016-09-25T15:28:42.089-07:00smart gwt allow only numbers in textfield<div dir="ltr" style="text-align: left;" trbidi="on">smart gwt allow only numbers in textfield<br />
Aceptar solo numeros en un textfield en gwt smartclient<br />
<br />
<br />
very simple MASK PROPERTY<br />
<br />
<ol class="dp-j" start="1"><li class=""> TextItem phoneNumberField = <span class="keyword">new</span> TextItem(<span class="string">"phoneNo"</span>, <span class="string">"Phone No."</span>); </li>
<li class="alt"> phoneNumberField.setMask(<span class="string">"(###) ###-####"</span>); </li>
<li class=""> phoneNumberField.setHint(<span class="string">"<nobr>(###) ###-####</nobr>"</span>);</li>
</ol> final TextItem check4 = new TextItem();<br />
check4.setName("4");<br />
check4.setTitle(" Grupo");<br />
check4.setTitleOrientation(TitleOrientation.TOP);<br />
check4.setWidth(100); <br />
check4.setValue(false);<br />
check4.setMask("###"); <br />
<br />
<br />
smart gwt allow only numbers in textfield<br />
Aceptar solo numeros en un textfield en gwt smartclient<br />
<br />
<br />
<b>void com.smartgwt.client.widgets.form.fields.TextItem.setMask(String mask)</b><br />
<br />
<br />
Input mask used to filter text entry. <br />
Sample masks: <br />
<ul><li>Phone number: (###) ###-#### </li>
<li>Social Security number: ###-##-#### </li>
<li>First name: >?<?????????? </li>
<li>Date: ##/##/#### </li>
<li>State: >LL </li>
</ul>Overview of available mask characters <br />
<table class="normal"><tbody>
<tr> <th>Character</th> <th>Description</th></tr>
<tr> <td>0</td> <td>Digit (0 through 9) or plus [+] or minus [-] signs</td></tr>
<tr> <td>9</td> <td>Digit or space</td></tr>
<tr> <td>#</td> <td>Digit</td></tr>
<tr> <td>L</td> <td>Letter (A through Z)</td></tr>
<tr> <td>?</td> <td>Letter (A through Z) or space</td></tr>
<tr> <td>A</td> <td>Letter or digit</td></tr>
<tr> <td>a</td> <td>Letter or digit</td></tr>
<tr> <td>C</td> <td>Any character or space</td></tr>
<tr> <td> </td></tr>
<tr> <td><</td> <td>Causes all characters that follow to be converted to lowercase</td></tr>
<tr> <td>></td> <td>Causes all characters that follow to be converted to uppercase</td></tr>
</tbody></table><br />
Any character not matching one of the above mask characters or that is escaped with a backslash (\) is considered to be a literal. <br />
Custom mask characters can be defined by standard regular expression character set or range. For example, a hexadecimal color code mask could be: <br />
<ul><li>Color: \#>[0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F] </li>
</ul>Note: input mask cannot be used at the same time as a <code>keyPressFilter</code>. Set the mask for this item. <br />
Note that the current value of the field is cleared when changing the mask. <br />
<b>Note : </b>This is an advanced setting<br />
<dl><dt>Parameters: </dt>
<dd><b>mask</b> mask to apply to text item. Default value is null </dd>
<dt>See Also: </dt>
<dd>Text - Masked Example</dd></dl></div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-45578066252551562162011-06-15T14:48:00.000-07:002016-09-25T15:28:42.069-07:00SMARTGWT linked hash map comboboxitem SelectItem<div dir="ltr" style="text-align: left;" trbidi="on">SMARTGWT linked hash map comboboxitem SelectItem<br />
<br />
final SelectItem check3 = new SelectItem(); <br />
check3.setName("3");<br />
check3.setTitle("enviar msj");<br />
check3.setWidth(40);<br />
check3.setValueMap("Ninguno","Mensaje Directo","Mensaje Massivo");<br />
<br />
SMARTGWT linked hash map comboboxitem SelectItem<br />
<br />
<br />
<code><span style="color: white;"> </span><span style="color: black;">ComboBoxItem cbItem = </span><span style="color: #7f0055;"><b>new </b></span><span style="color: black;">ComboBoxItem</span><span style="color: black;">()</span><span style="color: black;">;</span><br />
<span style="color: white;"> </span><span style="color: black;">cbItem.setTitle</span><span style="color: black;">(</span><span style="color: #2a00ff;">"Select"</span><span style="color: black;">)</span><span style="color: black;">;</span><br />
<span style="color: white;"> </span><span style="color: black;">cbItem.setHint</span><span style="color: black;">(</span><span style="color: #2a00ff;">"<nobr>A simple ComboBoxItem</nobr>"</span><span style="color: black;">)</span><span style="color: black;">;</span><br />
<span style="color: white;"> </span><span style="color: black;">cbItem.setType</span><span style="color: black;">(</span><span style="color: #2a00ff;">"comboBox"</span><span style="color: black;">)</span><span style="color: black;">;</span><br />
<span style="color: white;"> </span><span style="color: black;">cbItem.setValueMap</span><span style="color: black;">(</span><span style="color: #2a00ff;">"Cat"</span><span style="color: black;">, </span><span style="color: #2a00ff;">"Dog"</span><span style="color: black;">, </span><span style="color: #2a00ff;">"Giraffe"</span><span style="color: black;">, </span><span style="color: #2a00ff;">"Goat"</span><span style="color: black;">, </span><span style="color: #2a00ff;">"Marmoset"</span><span style="color: black;">, </span><span style="color: #2a00ff;">"Mouse"</span><span style="color: black;">)</span><span style="color: black;">;</span></code><br />
<br />
Como agregar valores a un combobox en smartgwt, o tambien como agregar id valores a un map en java <code><span style="color: black;">setValueMap</span></code></div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-38081576877805590602011-06-06T08:43:00.001-07:002016-09-25T15:28:42.058-07:00Grid with scrollbars<div dir="ltr" style="text-align: left;" trbidi="on">Grid with scrollbars en smartgwt<br />
Grid con scrollbars fijas en smartgwt<br />
<br />
Grid_.setWidth100();<br />
Grid_.setHeight100();<br />
Grid__.setDataSource(Source);<br />
Grid_.setAutoFetchData(false);<br />
Grid_.setEmptyMessage(variables.str_empty_call);<br />
Grid_.setLoadingMessage(variables.str_loading);<br />
Grid_.setLoadingDataMessage(variables.str_loading_data);<br />
Grid_.setCellHeight(24);<br />
<br />
<br />
</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-46054452681611928022011-04-20T10:07:00.000-07:002016-09-25T15:28:42.073-07:00Alignment Smartgwt alineado center centrado layout<div dir="ltr" style="text-align: left;" trbidi="on">Alignment Smartgwt alineado center centrado layout<br />
<br />
ex.1<br />
<b>Center </b>a element Label / centrar un elemento Label gwt<br />
setAlign(Alignment.CENTER); <br />
<br />
ex.2<br />
<b>VLayout </b>and put <b>layoutAlign</b>:"<b>center</b>" on the <b>HTMLPane</b>.<br />
<br />
ex.3<br />
Layout header = new HLayout();<br />
header.setWidth100();<br />
header.setHeight(24);<br />
header.addMember(new Button("Left"));<br />
header.addMember(new <b>LayoutSpacer</b>());<br />
header.addMember(new Button("Center"));<br />
header.addMember(new <b>LayoutSpacer</b>());<br />
header.addMember(new Button("Right")); <br />
<br />
<br />
<b>layoutAlign</b> - set on a member, alignment of a particular member, on the breadth axis<br />
<b>defaultLayoutAlign</b> - set on a layout, provides default for member.layoutAlign<br />
<b>layout.align</b> - alignment of all members on the length axis<br />
<br />
<span class="" id="result_box" lang="es"><b><span class="hps" title="Haz clic para obtener otras posibles traducciones">layoutAlign</span> </b><span class="hps" title="Haz clic para obtener otras posibles traducciones">-</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">situado en</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">un</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">miembro</span><span title="Haz clic para obtener otras posibles traducciones">,</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">la alineación</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">de</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">un</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">miembro</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">en particular</span><span title="Haz clic para obtener otras posibles traducciones">,</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">en el</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">eje de</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">la amplitud</span><br />
<b><span class="hps" title="Haz clic para obtener otras posibles traducciones">defaultLayoutAlign</span> </b><span class="hps" title="Haz clic para obtener otras posibles traducciones">-</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">situado en</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">un </span></span>layout<span class="" id="result_box" lang="es"><span class="hps" title="Haz clic para obtener otras posibles traducciones"></span><span title="Haz clic para obtener otras posibles traducciones">,</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">ofrece</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">por defecto</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">para</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">member.layoutAlign</span><br />
<b><span class="hps" title="Haz clic para obtener otras posibles traducciones">layout</span></b></span><b>.</b><span class="" id="result_box" lang="es"><b><span class="hps" title="Haz clic para obtener otras posibles traducciones">align</span></b> <span class="hps" title="Haz clic para obtener otras posibles traducciones">-</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">la alineación</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">de todos</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">los miembros</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">en el</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">eje de</span> <span class="hps" title="Haz clic para obtener otras posibles traducciones">la longitud</span></span> </div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-15764317261673131122011-04-12T09:41:00.000-07:002011-04-12T09:41:03.778-07:00Smart gwt client combobox read only<div dir="ltr" style="text-align: left;" trbidi="on"> Smart gwt client combobox read only<br />
<br />
combo_aplicacion.setTitleOrientation(TitleOrientation.TOP);<br />
combo_aplicacion.setTitle("Por xxxx");<br />
<b> combo_aplicacion.setType("select");</b><br />
combo_aplicacion.setRequired(true);<br />
combo_aplicacion.setWidth(100); <br />
combo_aplicacion.setValueField("id");<br />
combo_aplicacion.setDisplayField("Name"); <br />
<br />
Convertir un combobox a read onlye </div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-12448625005214649902011-04-07T07:34:00.000-07:002016-09-25T15:28:42.007-07:00RestDataSource : example XPath datasource<div dir="ltr" style="text-align: left;" trbidi="on"> RestDataSource : example XPath datasource<br />
Ejemplo de un restdatasource mas xpath y manejo de la respuesta con setResponseTransformHandler<br />
public class CurrentUserDS extends RestDataSource {<br />
private static CurrentUserDS instance = null;<br />
<br />
public static User getCurrentUser() {<br />
if (instance == null) {<br />
instance = new CurrentUserDS();<br />
<br />
}<br />
instance.fetchData();<br />
<br />
return null;<br />
}<br />
<br />
private CurrentUserDS() {<br />
super();<br />
<br />
setFields(new DataSourceTextField("key", "Key"),<br />
new DataSourceTextField("identity", "Identity"),<br />
new DataSourceTextField("nickname", "Nickname"));<br />
<br />
setDataFormat(DSDataFormat.JSON);<br />
<br />
setResponseTransformHandler(new ResponseTransformHandler() {<br />
public void execute(DSResponse response, DSRequest request, Object data) {<br />
String key = XMLTools.selectObjects(data, "response/data/key").get(0).toString();<br />
String identity = XMLTools.selectObjects(data, "response/data/identity").get(0).toString();<br />
String nickName = XMLTools.selectObjects(data, "response/data/nickname").get(0).toString();<br />
<br />
//add logic here<br />
}<br />
});<br />
}<br />
}</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-90106957631700781242011-04-06T14:17:00.001-07:002016-09-25T15:28:42.122-07:00convert Array to records , pass array a record<div dir="ltr" style="text-align: left;" trbidi="on"> convert Array to records<br />
<br />
JavaScriptObject jsoArray = JSOHelper.html.convertMapToJavascriptObject(java.util.Map);<br />
Record[] records = Record.convertToRecordArray(jsoArray);<br />
<br />
pass array a record </div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-3427607524238565172011-03-31T15:44:00.001-07:002016-09-25T15:28:42.050-07:00get criteria from filterbuilder<div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on">get criteria from filterbuilder smartgwt<br />
Obtener criteria de filterbuilder gwt<br />
<br />
<br />
String jsObj = JSON.encode(filterBuilder.getCriteria().getJsObj());<br />
SC.say(jsObj);<br />
<br />
</div><br />
o tambien se puede utilizar<br />
<br />
AdvancedCriteria cr = filterBuilder.getCriteria();<br />
<br />
JavaScriptObject jso = cr.getJsObj();<br />
<br />
Map map = cr.getValues();<br />
Set keys = map.keySet();<br />
Iterator it = keys.iterator();<br />
<br />
while( it.hasNext()){<br />
String key = it.next().toString();<br />
System.out.println("=> "+map.get(key));<br />
}<br />
Out put<br />
=> AdvancedCriteria<br />
=> and<br />
=> [object Object] <br />
<br />
<br />
</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-89890576798361557852011-03-31T15:10:00.000-07:002016-09-25T15:28:42.117-07:00load_data in smartgwt<div dir="ltr" style="text-align: left;" trbidi="on"> public void load_data() {<br />
if (loading == 0) {<br />
loading = 1;<br />
// --- DATASOOURCE ---<br />
GridSource.fetchData(<br />
new Criteria("1", "a"),<br />
new Criteria("1", "a"),<br />
new Criteria("1", "a"),<br />
new Criteria("1", "a"),<br />
new DSCallback() {<br />
@Override<br />
public void execute(DSResponse response,<br />
Object rawData, DSRequest request) {<br />
Grid_editor.setData(response.getData());<br />
}<br />
});<br />
}<br />
}<br />
<br />
load_data en smartgwt </div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-51265450224586348472011-02-25T15:48:00.001-08:002016-09-25T15:28:42.079-07:00grid icon smart gwt - icono en grid<div dir="ltr" style="text-align: left;" trbidi="on">grid icon smart gwt<br />
<br />
GRID- icon.txt<br />
<br />
ListGridField removeField = new ListGridField ("removeAction", 20);<br />
removeField.setType (ListGridFieldType.ICON);<br />
removeField.setCellIcon (str_img_del2);<br />
removeField.setCanEdit (false);<br />
removeField.setCanFilter (true);<br />
removeField.setFilterEditorType (new SpacerItem ());<br />
removeField.setCanGroupBy (false);<br />
removeField.setCanSort (false);<br />
removeField.addRecordClickHandler (new RecordClickHandler () {<br />
public void onRecordClick (final RecordClickEvent event) { <br />
// Detecta si es nuevo o modificado segun el id<br />
String id = event.getRecord().getAttribute("idccdir");<br />
if ((id == null) || (id.equals("") || (id.isEmpty()))) {<br />
// ES NUEVO<br />
GridSource.removeData(event.getRecord());<br />
} else {<br />
// ES MODIFICADO<br />
Record record = new Record();<br />
record.setAttribute("1", id);<br />
GridSource.cmd_data(record, null,<br />
keyhash.str_m_mante1, keyhash.str_b_del,<br />
new DSCallback() {<br />
@Override<br />
public void execute(<br />
DSResponse response,<br />
Object rawData,<br />
DSRequest request) {<br />
// TODO Auto-generated method stub<br />
load_data();<br />
<br />
}<br />
});<br />
} <br />
}<br />
});<br />
<br />
icono en grid </div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-81011413314087833402011-02-25T15:47:00.000-08:002016-09-25T15:28:42.102-07:00array separete by comme gwt - separa x comas y convertir a array<div dir="ltr" style="text-align: left;" trbidi="on">varios - recorre un string x comas convertir a array.txt<br />
<br />
<br />
array separete by comme gwt<br />
<br />
<br />
//private java.util.ArrayList<String> xlist = new java.util.ArrayList<String>(1000);<br />
<br />
String idents[] = x_list_chart.split( "," );<br />
<br />
for (int i =0 ; i < idents.length ;i++){<br />
<br />
com.google.gwt.user.client.Window.alert( idents.length+ idents[i].toString() );<br />
} <br />
<br />
separa x comas y convertir a array<br />
<br />
</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-16340864483429444762011-02-25T15:45:00.002-08:002016-09-25T15:28:42.026-07:00icon in label gwt - icono en cualquier lado<div dir="ltr" style="text-align: left;" trbidi="on">icon in label gwt - icono en cualquier lado<br />
<br />
VARIOS - icono en cualkier lado.txt<br />
<br />
String imgHTML = Canvas.imgHTML("/images/toolbar/login.png");<br />
menuButton.setTitle("<span>" + imgHTML + "&nbsp;" + "User Access" + "</span>");</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-45320813761899236992011-02-25T15:45:00.000-08:002016-09-25T15:28:42.066-07:00validation gwt java - validacion de datos en gwt<div dir="ltr" style="text-align: left;" trbidi="on">VALIDATION.txt<br />
<br />
<br />
validation gwt java<br />
<br />
ort com.smartgwt.client.types.Alignment;<br />
import com.smartgwt.client.types.FormErrorOrientation;<br />
import com.smartgwt.client.util.SC;<br />
import com.smartgwt.client.widgets.IButton;<br />
import com.smartgwt.client.widgets.Label;<br />
import com.smartgwt.client.widgets.Window;<br />
import com.smartgwt.client.widgets.events.ClickEvent;<br />
import com.smartgwt.client.widgets.events.ClickHandler;<br />
import com.smartgwt.client.widgets.form.DynamicForm;<br />
import com.smartgwt.client.widgets.form.fields.TextItem;<br />
import com.smartgwt.client.widgets.form.validator.CustomValidator;<br />
import com.smartgwt.client.widgets.form.validator.IsIntegerValidator;<br />
import com.smartgwt.client.widgets.layout.HLayout;<br />
import com.smartgwt.client.widgets.layout.LayoutSpacer;<br />
<br />
public class TestTextError extends Window{<br />
<br />
private DynamicForm form;<br />
<br />
private TextItem textItem1;<br />
<br />
private TextItem textItem2;<br />
<br />
private TextItem textItem3;<br />
<br />
private TextItem textItem4;<br />
<br />
private IButton saveButton;<br />
<br />
private IButton cancelButton;<br />
<br />
private IButton clearButton;<br />
<br />
public TestTextError() {<br />
<br />
createComponents();<br />
doLayout();<br />
defineValidators();<br />
defineCallbacks();<br />
}<br />
<br />
private void createComponents() {<br />
form = new DynamicForm(); <br />
form.setShowErrorText(true);<br />
form.setErrorOrientation(FormErrorOrientation.RIGHT);<br />
form.setRequiredTitleSuffix("*");<br />
<br />
textItem1 = new TextItem("textItem1");<br />
textItem1.setTitle("TextBox 1");<br />
textItem1.setWrapTitle(false);<br />
textItem1.setRequired(true); <br />
<br />
textItem2 = new TextItem("textItem2"); <br />
textItem2.setTitle("Widthout Spaces");<br />
textItem2.setWrapTitle(false);<br />
textItem2.setRequired(true);<br />
<br />
textItem3 = new TextItem("textItem3");<br />
textItem3.setTitle("Not only spaces");<br />
textItem3.setWrapTitle(false);<br />
textItem3.setRequired(true);<br />
<br />
textItem4 = new TextItem("textItem4");<br />
textItem4.setTitle("Only integer");<br />
textItem4.setWrapTitle(false);<br />
textItem4.setRequired(true);<br />
<br />
saveButton = new IButton("Salve");<br />
<br />
cancelButton = new IButton("Cancel");<br />
<br />
clearButton = new IButton("Clear");<br />
<br />
}<br />
<br />
private void doLayout() {<br />
setTitle("Test ErrorText");<br />
setAutoCenter(true);<br />
setIsModal(true);<br />
setCanDragResize(false);<br />
setAutoSize(true);<br />
setWidth(670);<br />
setAutoHeight();<br />
setShowResizer(true);<br />
<br />
form.setWidth100();<br />
form.setPadding(10);<br />
<br />
form.setNumCols(2);<br />
form.setColWidths(1, "*");<br />
form.setCellBorder(1);<br />
<br />
textItem1.setWidth(175);<br />
textItem2.setWidth(175);<br />
textItem3.setWidth(175);<br />
textItem4.setWidth(175);<br />
<br />
textItem1.setErrorMessageWidth(0);<br />
textItem2.setErrorMessageWidth(0);<br />
textItem3.setErrorMessageWidth(0);<br />
textItem4.setErrorMessageWidth(0);<br />
<br />
form.setFields(textItem1, textItem2, textItem3, textItem4);<br />
<br />
HLayout buttonsLayout = new HLayout();<br />
buttonsLayout.setWidth100();<br />
buttonsLayout.setAutoHeight();<br />
buttonsLayout.setDefaultLayoutAlign(Alignment.CENTER);<br />
buttonsLayout.setMargin(10);<br />
buttonsLayout.setMembersMargin(10);<br />
<br />
buttonsLayout.addMember(new LayoutSpacer());<br />
buttonsLayout.addMember(saveButton);<br />
buttonsLayout.addMember(cancelButton);<br />
buttonsLayout.addMember(clearButton);<br />
buttonsLayout.addMember(new LayoutSpacer());<br />
<br />
Label info = new Label("Look the space available beside the field. It's enought to not wrapp the errorText. Click Save to validate.");<br />
info.setWidth100();<br />
info.setAutoHeight();<br />
info.setMargin(10);<br />
<br />
<br />
addItem(form);<br />
addItem(info);<br />
addItem(buttonsLayout);<br />
}<br />
<br />
private void defineValidators() {<br />
// textItem1.setValidateOnChange(true);<br />
// textItem2.setValidateOnChange(true);<br />
// textItem3.setValidateOnChange(true);<br />
// textItem4.setValidateOnChange(true);<br />
<br />
CustomValidator notOnlySpaceValidator = new CustomValidator() {<br />
@Override<br />
protected boolean condition(Object value) {<br />
if(value==null) {<br />
return true;<br />
}<br />
if(!(value instanceof String)) {<br />
return false;<br />
}<br />
return ((String)value).trim().length()>0;<br />
}<br />
};<br />
notOnlySpaceValidator.setErrorMessage("This field can't have only spaces."); <br />
<br />
CustomValidator noSpaceValidator = new CustomValidator() {<br />
@Override<br />
protected boolean condition(Object value) {<br />
if(value==null) {<br />
return true;<br />
}<br />
if(!(value instanceof String)) {<br />
return false;<br />
}<br />
return !((String)value).contains(" ") && !((String)value).contains("\t");<br />
}<br />
};<br />
noSpaceValidator.setErrorMessage("This field can't have spaces.");<br />
<br />
textItem2.setValidators(noSpaceValidator); textItem2.setValue("Text with spaces");<br />
textItem3.setValidators(notOnlySpaceValidator); textItem3.setValue(" ");<br />
textItem4.setValidators(new IsIntegerValidator()); textItem4.setValue("Not number text");<br />
}<br />
<br />
private void defineCallbacks() {<br />
saveButton.addClickHandler(new ClickHandler(){<br />
public void onClick(ClickEvent event) {<br />
if(form.validate()) {<br />
SC.say("ok");<br />
}<br />
}<br />
});<br />
<br />
cancelButton.addClickHandler(new ClickHandler(){<br />
public void onClick(ClickEvent event) {<br />
TestTextError.this.destroy(); //TODO is it the best option? <br />
}});<br />
<br />
clearButton.addClickHandler(new ClickHandler(){<br />
public void onClick(ClickEvent event) {<br />
form.clearValues();<br />
}});<br />
}<br />
}<br />
<br />
<br />
validacion de datos en gwt </div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-90286543756019475352011-02-25T15:44:00.000-08:002016-09-25T15:28:42.124-07:00objet class template - prototipo clase java gwt<div dir="ltr" style="text-align: left;" trbidi="on">TEMPLATE CLASE.txt<br />
<br />
package paketen name<br />
<br />
importS<br />
import asd.client.kernel.constants.k_variables;<br />
import asd.client.kernel.login.constants.k_lengu; <- LENGUAJ<br />
<br />
<br />
public class CLASENAME extends VLayout<br />
{<br />
//------constants------------------------------------------------------------------------------------------------------------------------<br />
<br />
//------variables : configuration------------------------------------------------------------------------------------------------------------------------ <br />
private k_variables variables = null;<br />
private k_NOMBRCLASELABEL labels = (k_NOMBRCLASELABEL)GWT.create(k_NOMBRCLASELABEL.class);<br />
<br />
private int int_height_viewwindow;<br />
private int int_width_tree_menu;<br />
<br />
<br />
private k_Callback Callback;<br />
<br />
//------objects : components------------------------------------------------------------------------------------------------------------------------<br />
HLayout desktop = null;<br />
<br />
private static monitor_colas Modulo = null;<br />
<br />
<br />
<br />
//-----functions------------------------------------------------------------------------------------------------------------------------<br />
public CLASENAME ( VARS )<br />
{<br />
super();<br />
CONFIGURACION ESTATICA <br />
make();<br />
}<br />
<br />
<br />
<br />
public void make()<br />
{<br />
CONFIGURACION DINAMICA<br />
desktop = new HLayout();<br />
desktop.setWidth100();<br />
desktop.setHeight100();<br />
<br />
}<br />
<br />
public void execution() <br />
{<br />
draw();<br />
}<br />
<br />
public void ALGUNA FUNCION SIN RETORNO( VARS )<br />
{ <br />
} <br />
<br />
}</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-19059811149969727462011-02-25T15:42:00.003-08:002016-09-25T15:28:42.033-07:00task timer gwt smart - temporizador en gwt smartclient<div dir="ltr" style="text-align: left;" trbidi="on">TASK - refrscar.txt<br />
<br />
task timer gwt smart<br />
<br />
Timer t = new Timer() {<br />
public void run() {<br />
statusGrid.invalidateCache();<br />
statusGrid.fetchData();<br />
Window.alert("james jara, who is");<br />
<br />
}<br />
};<br />
<br />
// Schedule the timer to run once in 5 seconds.<br />
t.scheduleRepeating(5000); <br />
<br />
temporizador en gwt smartclient</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-35491322137604212572011-02-25T15:42:00.001-08:002016-09-25T15:28:42.053-07:00question confirm sc window smartgwt - ventana de confirmacion en smartgwt<div dir="ltr" style="text-align: left;" trbidi="on"> question.txt<br />
<br />
SC.confirm("Are you sure to delete your xxx?", new BooleanCallback() {<br />
public void execute(Boolean value) {<br />
if (value != null && value) {<br />
//proceed with delete<br />
} else {<br />
//Cancel<br />
}<br />
}<br />
});<br />
.<br />
question confirm sc window smartgwt<br />
ventana de confirmacion en smartgwt</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-15414763246971381052011-02-25T15:40:00.002-08:002016-09-25T15:28:42.017-07:00Objetos java gwt smart client<div dir="ltr" style="text-align: left;" trbidi="on">objetos.txt<br />
<br />
class figura<br />
{<br />
privated<br />
todo lo que este en esto bloque solo lo ve la clase dueña<br />
<br />
protected<br />
todo lo que este en este bloque lo pueden acceder las clases hijas<br />
public<br />
todo mundo puede verlo<br />
<br />
<br />
en cada uno esos bloques pueden ir dos cosas<br />
miembros - estructuas, variables<br />
funciones-metodos<br />
}<br />
<br />
<br />
override : significa que susituyo el metodo padre<br />
<br />
overload : sobre cargar una funcion<br />
<br />
<br />
</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0tag:blogger.com,1999:blog-2887019563253787333.post-4622953165898530692011-02-25T15:40:00.000-08:002016-09-25T15:28:42.076-07:00menu smart gwt client gwt<div dir="ltr" style="text-align: left;" trbidi="on">MENU - crear menu.txt<br />
//MENU SUPERIOR<br />
Menu ReferMenu = new Menu();<br />
ReferMenu.setShowShadow(true); <br />
ReferMenu.setShadowDepth(10); <br />
MenuItem opcionA = new MenuItem(" Ventana 1 " , str_bg_image , "Ctrl+1");<br />
//EVENTOS<br />
opcionA.addClickHandler( new com.smartgwt.client.widgets.menu.events.ClickHandler() {<br />
@Override<br />
public void onClick(MenuItemClickEvent event) {<br />
new default_window( <br />
labels.title_window_user() <br />
,300<br />
,200<br />
//TASKBAR<br />
, StatusButtonBar<br />
//PADRE<br />
, CenterLayout<br />
, str_taskb_icon<br />
); <br />
//Window_Users.show(); <br />
}<br />
});<br />
MenuItem opcionB = new MenuItem(" Ventana 2 " , str_bg_image , "Ctrl+2");<br />
MenuItemSeparator separator = new MenuItemSeparator(); <br />
ReferMenu.setItems( opcionA , separator , opcionB ); MenuItem , <br />
IMenuButton ItemPadreMenu = new IMenuButton("", ReferMenu); <br />
ItemPadreMenu.setWidth(28);<br />
ItemPadreMenu.setHeight(28); <br />
ItemPadreMenu.setLeft(15);<br />
ItemPadreMenu.setShowRollOver(true);<br />
ItemPadreMenu.setShowDown(true);<br />
ItemPadreMenu.setSrc(str_top_menu_icon); <br />
<br />
ejemplo de menu en smart gwt<br />
<br />
</div>james jarahttp://www.blogger.com/profile/17237601744695424344noreply@blogger.com0