You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/09/05 11:49:44 UTC
svn commit: r1381115 - in /incubator/openmeetings/trunk/singlewebapp: ./
src/META-INF/ src/org/openmeetings/web/app/
src/org/openmeetings/web/components/ src/org/openmeetings/web/pages/
Author: solomax
Date: Wed Sep 5 09:49:43 2012
New Revision: 1381115
URL: http://svn.apache.org/viewvc?rev=1381115&view=rev
Log:
Additional components are refactored to work in single page interface
Added:
incubator/openmeetings/trunk/singlewebapp/backup_22_07_2012_22_38_12.zip (with props)
incubator/openmeetings/trunk/singlewebapp/backup_26_07_2012_13_59_48.zip (with props)
incubator/openmeetings/trunk/singlewebapp/backup_31_07_2012_13_33_23.zip (with props)
incubator/openmeetings/trunk/singlewebapp/rtl.patch
incubator/openmeetings/trunk/singlewebapp/rtl_timur_1.9.1.diff
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/HeaderPanel.html
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/HeaderPanel.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/MenuPanel.html
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/MenuPanel.java
Modified:
incubator/openmeetings/trunk/singlewebapp/src/META-INF/mysql_persistence.xml
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.html
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.java
Added: incubator/openmeetings/trunk/singlewebapp/backup_22_07_2012_22_38_12.zip
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/backup_22_07_2012_22_38_12.zip?rev=1381115&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/openmeetings/trunk/singlewebapp/backup_22_07_2012_22_38_12.zip
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/openmeetings/trunk/singlewebapp/backup_26_07_2012_13_59_48.zip
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/backup_26_07_2012_13_59_48.zip?rev=1381115&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/openmeetings/trunk/singlewebapp/backup_26_07_2012_13_59_48.zip
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/openmeetings/trunk/singlewebapp/backup_31_07_2012_13_33_23.zip
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/backup_31_07_2012_13_33_23.zip?rev=1381115&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/openmeetings/trunk/singlewebapp/backup_31_07_2012_13_33_23.zip
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/openmeetings/trunk/singlewebapp/rtl.patch
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/rtl.patch?rev=1381115&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/rtl.patch (added)
+++ incubator/openmeetings/trunk/singlewebapp/rtl.patch Wed Sep 5 09:49:43 2012
@@ -0,0 +1,549 @@
+Index: src/org/openmeetings/app/remote/LanguageService.java
+===================================================================
+--- src/org/openmeetings/app/remote/LanguageService.java (revision 1333795)
++++ src/org/openmeetings/app/remote/LanguageService.java (working copy)
+@@ -68,6 +68,10 @@
+ return fieldLanguageDaoImpl.getLanguages();
+ }
+
++ public FieldLanguage getLanguage(Long language_id) {
++ return fieldLanguageDaoImpl.getFieldLanguageById(language_id);
++ }
++
+ /**
+ * get all fields of a given Language_id
+ *
+Index: WebContent/src/base/auth/checkLoginData.lzx
+===================================================================
+--- WebContent/src/base/auth/checkLoginData.lzx (revision 1333795)
++++ WebContent/src/base/auth/checkLoginData.lzx (working copy)
+@@ -297,7 +297,7 @@
+
+ new lz.labelerrorPopup(canvas,{error:'SIP Applet is not ready!'});
+
+- hib.getLanguageByIdAndMax.doCall();
++ hib.getLanguage.doCall();
+ canvas.focusOnItem = null;
+ parent.close();
+
+Index: WebContent/src/base/components/text/customEdittext.lzx
+===================================================================
+--- WebContent/src/base/components/text/customEdittext.lzx (revision 1333795)
++++ WebContent/src/base/components/text/customEdittext.lzx (working copy)
+@@ -21,7 +21,7 @@
+ <library>
+
+ <class name="customEdittext" extends="inputtext" bgcolor="0xFFFFFF" fontsize="11" height="20" >
+-
++ <attribute name="isrtl" value="false" type="boolean"/>
+ <view name="v_border" height="1" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" width="$once{parent.width}" />
+ <view name="h_border" width="1" y="1" bgcolor="$once{ canvas.getThemeColor('secondBorderColor') }" height="$once{parent.height -1}" />
+
+@@ -37,27 +37,34 @@
+ <handler name="onfocus" args="f">
+ this.preText = this.getText();
+ </handler>
+-
++
++ <handler name="onisrtl">
++ if(this.isrtl){
++ this.setAttribute('textalign', 'right');
++ } else{
++ this.setAttribute('textalign', 'left');
++ }
++ </handler>
++
+ <handler name="oninit">
+ //this.field.setAttribute("bgcolor",0xFFFFFF);
+ </handler>
+
+ <handler name="ontext" args="txt">
+ <![CDATA[
+-
+- //
+-
++ if (txt == null || txt.length == 0) {
++ return;
++ }
++ if (this.isrtl) {
++ this.setAttribute('text', canvas.rtl(txt));
++ }
++
+ if (System.capabilities.os.indexOf('Linux')==-1) {
+ return;
+ }
+
+ //if ($debug) Debug.write("System.capabilities.os -- START ",System.capabilities.os,txt);
+
+- if (txt == null || txt.length == 0) {
+- return;
+- }
+-
+-
+ //UTF8 character remappings
+ var cp1252 = new Object();
+ cp1252[0x20ac]=0x80;
+Index: WebContent/src/base/components/text/customInputtext.lzx
+===================================================================
+--- WebContent/src/base/components/text/customInputtext.lzx (revision 1333795)
++++ WebContent/src/base/components/text/customInputtext.lzx (working copy)
+@@ -21,29 +21,36 @@
+ <library>
+
+ <class name="customInputtext" extends="inputtext">
+-
+- <handler name="onfocus">
+-
+- if ($debug) Debug.write("customInputtext onFocus : ", canvas.isrtl);
+-
+-
+- if(canvas.isrtl == 'true'){
+- if ($debug) Debug.write("customInputtext onFocus : RTL is set");
+- this.setAttribute('textalign', 'right');
+- }
+- else{
+- if ($debug) Debug.write("customInputtext onFocus : RTL is NOT set");
+- this.setAttribute('textalign', 'left');
+-
+- }
+- </handler>
+-
+- <handler name="ontext" args="txt">
+- <![CDATA[
+-
+- //
+-
+- if (System.capabilities.os.indexOf('Linux')==-1) {
++ <attribute name="isrtl" value="false" type="boolean"/>
++ <handler name="oninit">
++ if (this.isrtl) {
++ this.setAttribute('textalign', 'right');
++ } else {
++ this.setAttribute('textalign', 'left');
++ }
++ </handler>
++
++ <handler name="onisrtl">
++ if (this.isrtl) {
++ this.setAttribute('textalign', 'right');
++ } else {
++ this.setAttribute('textalign', 'left');
++ }
++ </handler>
++
++ <handler name="ontext" args="txt">
++ <![CDATA[
++ //if ($debug) Debug.write("ontext", txt);
++
++ if (txt == null || txt.length == 0) {
++ return;
++ }
++
++ if (this.isrtl) {
++ this.setAttribute('text', canvas.rtl(txt));
++ }
++
++ if (System.capabilities.os.indexOf('Linux') == -1) {
+ return;
+ }
+
+Index: WebContent/src/base/components/text/library.lzx
+===================================================================
+--- WebContent/src/base/components/text/library.lzx (revision 1333795)
++++ WebContent/src/base/components/text/library.lzx (working copy)
+@@ -26,5 +26,6 @@
+ <include href="customEdittext.lzx" />
+ <include href="customscrollEdittext.lzx" />
+ <include href="customInputtext.lzx" />
++ <include href="rtl.lzx" />
+
+ </library>
+Index: WebContent/src/base/hibernate/hibRtmpConnection.lzx
+===================================================================
+--- WebContent/src/base/hibernate/hibRtmpConnection.lzx (revision 1333795)
++++ WebContent/src/base/hibernate/hibRtmpConnection.lzx (working copy)
+@@ -259,6 +259,7 @@
+ userlang = canvas.language_id;
+ } else if (userlang == -1) {
+ var lang_id = canvas.default_lang_id;
++ var rtl = canvas.isrtl;
+
+ var browserLang = flash.external.ExternalInterface.call("function(){return window.navigator.systemLanguage || window.navigator.userLanguage || window.navigator.language;}");
+ if (browserLang == null) {
+@@ -291,11 +292,15 @@
+ i = (fullMatch != -1) ? fullMatch : partMatch;
+ xpath = "languagesSet:/item[" + i + "]/language_id/text()";
+ lang_id = languagesSet.getPointer().xpathQuery(xpath);
++ xpath = "boolean(languagesSet:/item[" + i + "]/rtl/text())";
++ rtl = languagesSet.getPointer().xpathQuery(xpath);
++ if($debug) Debug.write("RTL: ", rtl);
+ }
+ }
+
+ if (canvas.language_id == 0) {
+ userlang = lang_id;
++ canvas.isrtl = rtl;
+ } else {
+ userlang = canvas.language_id;
+ }
+@@ -519,7 +524,18 @@
+ </handler>
+ </netRemoteCallHib>
+
+- <netRemoteCallHib name="getLanguageByIdAndMax" funcname="languageservice.getLanguageByIdAndMax" >
++ <netRemoteCallHib name="getLanguage" funcname="languageservice.getLanguage" >
++ <netparam><method name="getValue">return parent.parent.userlang;</method></netparam>
++ <handler name="ondata" args="value">
++ <![CDATA[
++ if($debug) Debug.write("hibRtmpConnection/getLanguage: ", value);
++ canvas.setAttribute('isrtl', value.rtl);
++ parent.getLanguageByIdAndMax.doCall();
++ ]]>
++ </handler>
++ </netRemoteCallHib>
++
++ <netRemoteCallHib name="getLanguageByIdAndMax" funcname="languageservice.getLanguageByIdAndMax" >
+ <attribute name="start" value="0" type="number" />
+ <attribute name="step" value="100" type="number" />
+ <attribute name="max" value="1300" type="number" />
+@@ -791,7 +807,7 @@
+
+ }
+ } else {
+- hib.getLanguageByIdAndMax.doCall();
++ hib.getLanguage.doCall();
+ canvas.focusOnItem = null;
+ }
+ } else {
+Index: WebContent/src/modules/chat/overAllChatTabBottom.lzx
+===================================================================
+--- WebContent/src/modules/chat/overAllChatTabBottom.lzx (revision 1333795)
++++ WebContent/src/modules/chat/overAllChatTabBottom.lzx (working copy)
+@@ -34,10 +34,10 @@
+ return this._ctext.getText();
+ </method>
+ <method name="setText" args="txt">
+- this._ctext.setAttribute('text',txt);
++ this._ctext.setAttribute('text', txt);
+ </method>
+ <customInputtext name="_ctext" width="${ parent.width-81 }" height="$once{ parent.height-2 }"
+- x="1" y="1" bgcolor="white" >
++ x="1" y="1" bgcolor="white" isrtl="${parent.parent._inverseWording.getValue()}" >
+ <handler name="onkeyup" args="key">
+ <![CDATA[
+ // 13 is return
+@@ -59,7 +59,6 @@
+ parent.objMessage[2] = 'newtextmessage';
+ parent.objMessage[3] = hib.userobject.login;
+ var message = this.parent.getText();
+- if (parent.parent._inverseWording.getValue()) message = canvas.reverseWordingsBySplit(message)
+ parent.objMessage[4] = message;
+ parent.objMessage[5] = canvas.currentusercolor;
+ parent.objMessage[6] = canvas.publicSID;
+Index: WebContent/src/modules/conference/tabcontent/chat/chatTabBottom.lzx
+===================================================================
+--- WebContent/src/modules/conference/tabcontent/chat/chatTabBottom.lzx (revision 1333795)
++++ WebContent/src/modules/conference/tabcontent/chat/chatTabBottom.lzx (working copy)
+@@ -32,12 +32,9 @@
+ this._ctext.setAttribute('text',txt);
+ </method>
+ <customInputtext name="_ctext" width="${ parent.width-2 }" height="$once{ parent.height-2 }"
+- x="1" y="1" bgcolor="white" >
++ x="1" y="1" bgcolor="white" isrtl="${parent.parent._inverseWording.getValue()}" >
+ <handler name="onkeyup" args="key">
+ <![CDATA[
+- var reverse = canvas.reverseAll(parent.getText());
+-
+- // parent.setText(reverse);
+ // 13 is return
+ if ((key==27) || (key==13)) {
+ this.parent._button.onclick.sendEvent();
+Index: WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx
+===================================================================
+--- WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx (revision 1333795)
++++ WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx (working copy)
+@@ -54,12 +54,9 @@
+ //Debug.write("downloadurl "+downloadurl);
+ this._userpic.setAttribute('src',downloadurl);
+
+- if(canvas.isrtl == 'true'){
++ if(canvas.isrtl){
+ if($debug) Debug.write("chatTabItemEmoticons RTL is set");
+
+- this.header_user.setAttribute('textalign', 'right');
+- this.header_time.setAttribute('align', 'left');
+- this.header_time.setAttribute('x', '40');
+ this.multi.setAttribute('textalign', 'right');
+ this.multi.setAttribute('align', 'right');
+ }
+@@ -90,7 +87,7 @@
+ </handler>
+ </image>
+
+- <text text="$once{ parent.username }" x="40" resize="false" fontsize="11" multiline="true"
++ <text text="$once{ canvas.isrtl ? canvas.reverseWordingsBySplit(parent.username) : parent.username }" x="40" resize="false" fontsize="11" multiline="true"
+ width="140" height="$once{ parent.height }"
+ name="header_user">
+ </text>
+Index: WebContent/src/modules/conference/whiteboard/base/baseDrawLetter.lzx
+===================================================================
+--- WebContent/src/modules/conference/whiteboard/base/baseDrawLetter.lzx (revision 1333795)
++++ WebContent/src/modules/conference/whiteboard/base/baseDrawLetter.lzx (working copy)
+@@ -70,6 +70,7 @@
+
+ <!-- "plain", "bold" , "italic" or "bolditalic". -->
+ <attribute name="currentlayerstyle" value="plain" type="string" setter="this.setNewLayerStyle(currentlayerstyle)" />
++ <attribute name="isrtl" value="$once{canvas.isrtl}" type="boolean"/>
+
+ <method name="setNewLayerLetter" args="cl">
+ this.currentlayerletter=cl;
+@@ -132,22 +133,22 @@
+ ]]>
+ </method>
+
+- <method name="drawTextField" args="textforfield,width,height,x,y" >
++ <method name="drawTextField" args="textforfield,width,height,x,y,isrtl" >
+
+ //Debug.write("drawTextField: ",textforfield,width,x,y);
+ var tempO = this.newTextField(this, 'letter' + this.getCounter(),
+ textforfield, width, height, x, y, this.currentlayersize,
+- this.currentlayerletter, this.currentlayerstyle);
++ this.currentlayerletter, this.currentlayerstyle,isrtl);
+ this.layers.push(tempO);
+ this.drawTextFieldregister(textforfield, width, x, y,
+ this.currentlayersize, this.currentlayerletter,
+ this.currentlayerstyle, tempO.height, this
+- .getSWFDocumentStatus(), this.getZIndex());
++ .getSWFDocumentStatus(), this.getZIndex(), isrtl);
+ </method>
+
+ <!-- editModus -->
+- <method name="setTextFieldByName" args="txtName,textforfield,width,x,y,height" >
+- if ($debug) Debug.write("drawTextFieldByName ",txtName,textforfield,width,x,y);
++ <method name="setTextFieldByName" args="txtName,textforfield,width,x,y,height,isrtl" >
++ if ($debug) Debug.write("drawTextFieldByName ",txtName,textforfield,width,x,y,isrtl);
+ //this.checkForChanges(txtName,textforfield,width,x,y,height);
+ this.edittextLetterObject.setAttribute('text',textforfield);
+ this.edittextLetterObject.setTextEncoded(textforfield);
+@@ -157,6 +158,7 @@
+ this.edittextLetterObject.setAttribute('fontsize',this.currentlayersize);
+ this.edittextLetterObject.setAttribute('fgcolor',this.currentlayerletter);
+ this.edittextLetterObject.setAttribute('fontstyle',this.currentlayerstyle);
++ this.edittextLetterObject.setAttribute('textalign', isrtl ? 'right' : 'left');
+ this.updateObjectBounds();
+ this.updateByEditLetterObject();
+ //this.setModus('hand');
+@@ -234,7 +236,8 @@
+ this.baseactionobjectList[eg][1] = this.edittextLetterObject.text;
+ this.baseactionobjectList[eg][2] = this.edittextLetterObject.fgcolor;
+ this.baseactionobjectList[eg][3] = this.edittextLetterObject.fontsize;
+- this.baseactionobjectList[eg][4] = this.edittextLetterObject.fontstyle;
++ this.baseactionobjectList[eg][4] = this.edittextLetterObject.fontstyle;
++ this.baseactionobjectList[eg][5] = this.edittextLetterObject.isrtl;
+ this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-5] = this.edittextLetterObject.x
+ this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-4] = this.edittextLetterObject.y;
+ this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-3] = this.edittextLetterObject.width;
+@@ -259,6 +262,7 @@
+ editObj.setAttribute('fontsize',actionObject[3]);
+ editObj.setAttribute('fgcolor',actionObject[2]);
+ editObj.setAttribute('fontstyle',actionObject[4]);
++ editObj.setAttribute('isrtl',actionObject[5]);
+ </method>
+
+ <method name="checkForChanges" args="txtName,textforfield,width,x,y,height">
+@@ -274,12 +278,13 @@
+ this.newTextField(obj,actionObject[actionObject.length-1],actionObject[1],
+ actionObject[actionObject.length-3],actionObject[actionObject.length-2],
+ actionObject[actionObject.length-5],actionObject[actionObject.length-4],
+- actionObject[3],actionObject[2],actionObject[4]);
++ actionObject[3],actionObject[2],actionObject[4], actionObject[5]);
+
+ this.doSWFDocumentStatus(this.currentlayer,actionObject[actionObject.length-7]);
+ </method>
+
+- <method name="newTextField" args="obj,naming,textforfield,width,height,x,y,fontsize,fgcolor,fontstyle">
++ <method name="newTextField" args="obj,naming,textforfield,width,height,x,y,fontsize,fgcolor,fontstyle,isrtl">
++ if ($debug) Debug.write(obj,naming,textforfield,width,height,x,y,fontsize,fgcolor,fontstyle,isrtl);
+ this.currentlayer = new lz.whiteBoardTextField(obj, {
+ name : naming,
+ x : x,
+@@ -290,28 +295,30 @@
+ text : textforfield,
+ fontsize : fontsize,
+ fgcolor : fgcolor,
+- fontstyle : fontstyle
++ fontstyle : fontstyle,
++ textalign: isrtl ? 'right' : 'left'
+ });
+ this.currentlayer.setTextEncoded(textforfield);
+ //Add Layer to global Layer
+ return this.currentlayer;
+ </method>
+
+- <method name="drawTextFieldregister" args="textforfield,width,x,y,fontsize,fgcolor,fontstyle,height,swfObj,zIndex">
++ <method name="drawTextFieldregister" args="textforfield,width,x,y,fontsize,fgcolor,fontstyle,height,swfObj,zIndex,isrtl">
+ var actionObject = new Array();
+ actionObject[0] = "letter";
+ actionObject[1] = textforfield;
+ actionObject[2] = fgcolor;
+ actionObject[3] = fontsize;
+ actionObject[4] = fontstyle;
+- actionObject[5] = zIndex;//-8
+- actionObject[6] = swfObj;//-7
+- actionObject[7] = this.counter;//-6
+- actionObject[8] = x;//-5
+- actionObject[9] = y;//-4
+- actionObject[10] = width;//-3
+- actionObject[11] = height;//-2
+- actionObject[12] = this.currentlayer.name;//-1
++ actionObject[5] = isrtl;
++ actionObject[6] = zIndex;//-8
++ actionObject[7] = swfObj;//-7
++ actionObject[8] = this.counter;//-6
++ actionObject[9] = x;//-5
++ actionObject[10] = y;//-4
++ actionObject[11] = width;//-3
++ actionObject[12] = height;//-2
++ actionObject[13] = this.currentlayer.name;//-1
+ this.baseactionobjectList.push(actionObject);
+ this.checkStepLayers();
+ this.onsharedMessage('draw',actionObject);
+Index: WebContent/src/modules/conference/whiteboard/base/baseDrawWords.lzx
+===================================================================
+--- WebContent/src/modules/conference/whiteboard/base/baseDrawWords.lzx (revision 1333795)
++++ WebContent/src/modules/conference/whiteboard/base/baseDrawWords.lzx (working copy)
+@@ -97,7 +97,7 @@
+
+ this.refObj.drawTextField(this._textview._textview.getURLEncodedText(),
+ this._textview._textview.width,
+- this._textview._textview.height,x,y);
++ this._textview._textview.height,x,y, this._inverseWording.getValue());
+
+ } else if (this._textview._textview.getURLEncodedText().length!=0 && this.inittext.length!=0){
+
+@@ -116,7 +116,7 @@
+ this.refObj.setTextFieldByName(this.initTextName,
+ this._textview._textview.getURLEncodedText(),
+ this._textview._textview.width,
+- x,y,this._textview._textview.height);
++ x,y,this._textview._textview.height, this._inverseWording.getValue());
+
+ } else {
+ if ($debug) Debug.write("text smaller then 0",this._textview._textview.getURLEncodedText());
+@@ -137,12 +137,14 @@
+ //startAdjustHight is set to true later, cause otherwise update
+ //Events would set the height to
+ //text field default height
++ if ($debug) Debug.write("oninit this.refObj.isrtl ",this.refObj.isrtl);
+ this.refObj.letterObjectClose(this);
+ var t = new lz.styleableInput(this._textview,{
+ name:'_textview',text:this.inittext,
+ fontstyle:this.refObj.currentlayerstyle,
+ fontsize:this.refObj.currentlayersize,
+- fgcolor:this.refObj.currentlayerletter
++ fgcolor:this.refObj.currentlayerletter,
++ isrtl:this.refObj.isrtl
+ });
+ //if ( this.inittext.length==0 ) this.setAttribute('height',40);
+ if ( this.inittext.length!=0 ) {
+@@ -165,12 +167,14 @@
+ //if ($debug) Debug.write("callNew height-4 ",this.getHeight());
+
+ this._textview._textview.destroy();
++ if ($debug) Debug.write("callNew this.refObj.isrtl ",this.refObj.isrtl);
+ var t = new lz.styleableInput(this._textview,{
+ setFocusOnInit:false,
+ name:'_textview',text:txxt,
+ fontstyle:this.refObj.currentlayerstyle,
+ fontsize:this.refObj.currentlayersize,
+- fgcolor:this.refObj.currentlayerletter
++ fgcolor:this.refObj.currentlayerletter,
++ isrtl:this.refObj.isrtl
+ });
+ this.setAttribute("height",h);
+ </method>
+@@ -185,6 +189,21 @@
+
+ <view name="_textview" width="${ parent.width }" height="${ parent.height }" />
+
++ <labelCheckbox name="_inverseWording" x="2" y="${ parent.height - this.height}" labelid="580">
++ <attribute name="doUpdate" value="false" type="boolean" />
++ <handler name="oninit">
++ this.setValue(parent.refObj.isrtl);
++ this.setAttribute('doUpdate', true);
++ </handler>
++ <handler name="onvalue" args="v">
++ if (this.doUpdate) {
++ parent.refObj.setAttribute('isrtl', this.getValue());
++ parent._textview._textview.setAttribute('isrtl', this.getValue());
++ }
++ </handler>
++ <labelTooltip labelid="581" />
++ </labelCheckbox>
++
+ <resizestate name="rs" >
+ <text x="2" y="2" text="${ 'w: '+parent.width+' h: '+parent.height }" bgcolor="white"/>
+ </resizestate>
+Index: WebContent/src/base/components/text/rtl.lzx
+===================================================================
+--- WebContent/src/base/components/text/rtl.lzx (revision 0)
++++ WebContent/src/base/components/text/rtl.lzx (working copy)
+@@ -0,0 +1,57 @@
++<?xml version="1.0" encoding="UTF-8" ?>
++<!--
++ Licensed to the Apache Software Foundation (ASF) under one
++ or more contributor license agreements. See the NOTICE file
++ distributed with this work for additional information
++ regarding copyright ownership. The ASF licenses this file
++ to you under the Apache License, Version 2.0 (the
++ "License"); you may not use this file except in compliance
++ with the License. You may obtain a copy of the License at
++
++ http://www.apache.org/licenses/LICENSE-2.0
++
++ Unless required by applicable law or agreed to in writing,
++ software distributed under the License is distributed on an
++ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
++ KIND, either express or implied. See the License for the
++ specific language governing permissions and limitations
++ under the License.
++
++-->
++<library>
++ <method name="rtl" args="txt">
++ <![CDATA[
++ var caret_i = Selection.getCaretIndex() - 1;
++ //if ($debug) Debug.write("caret_i: ", caret_i, "txt.charAt(caret_i): ", txt.charAt(caret_i));
++ if(txt.charAt(caret_i) == ' ') {
++ if(caret_i == txt.length - 1 || caret_i < txt.length - 1 && txt.charAt(caret_i+1) == ' ') {
++ //if ($debug) Debug.write("txt.substr(0, caret_i): ", txt.substr(0, caret_i));
++ //if ($debug) Debug.write("(caret_i < txt.length-1): ", (caret_i < txt.length-1));
++ //if ($debug) Debug.write("txt.slice(caret_i + 1, txt.length): ", txt.slice(caret_i + 1, txt.length));
++ txt = txt.substr(0, caret_i) + ((caret_i < txt.length - 1) ? txt.slice(caret_i + 1, txt.length) : "");
++ //if ($debug) Debug.write("remove whitespace: ", txt);
++ }
++ var found = false;
++ for(var i = caret_i - 1; i >= 0; i--) {
++ if(txt.charAt(i) == ' ') {
++ found = true;
++ txt = txt.slice(0, i) + " " + txt.slice(i + 1, txt.length)
++ //if ($debug) Debug.write("next word: ", i, txt);
++ Selection.setSelection(i, i);
++ break;
++ } else if(txt.charAt(i) == '\n' || txt.charAt(i) == '\r') {
++ found = true;
++ txt = txt.slice(0, i + 1) + " " + txt.slice(i + 1, txt.length)
++ Selection.setSelection(i + 1, i + 1);
++ break;
++ }
++ }
++ if(!found) {
++ txt = " " + txt;
++ Selection.setSelection(0, 0);
++ }
++ }
++ return txt;
++ ]]>
++ </method>
++</library>
+\ No newline at end of file
Added: incubator/openmeetings/trunk/singlewebapp/rtl_timur_1.9.1.diff
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/rtl_timur_1.9.1.diff?rev=1381115&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/rtl_timur_1.9.1.diff (added)
+++ incubator/openmeetings/trunk/singlewebapp/rtl_timur_1.9.1.diff Wed Sep 5 09:49:43 2012
@@ -0,0 +1,732 @@
+Index: src/app/org/openmeetings/app/remote/LanguageService.java
+===================================================================
+--- src/app/org/openmeetings/app/remote/LanguageService.java (revision 4707)
++++ src/app/org/openmeetings/app/remote/LanguageService.java (working copy)
+@@ -50,6 +50,10 @@
+ return fieldLanguageDaoImpl.getLanguages();
+ }
+
++ public FieldLanguage getLanguage(Long language_id) {
++ return fieldLanguageDaoImpl.getFieldLanguageById(language_id);
++ }
++
+ /**
+ * get all fields of a given Language_id
+ *
+Index: WebContent/src/modules/chat/overAllChatTabBottom.lzx
+===================================================================
+--- WebContent/src/modules/chat/overAllChatTabBottom.lzx (revision 4707)
++++ WebContent/src/modules/chat/overAllChatTabBottom.lzx (working copy)
+@@ -13,7 +13,7 @@
+ this._ctext.setAttribute('text',txt);
+ </method>
+ <customInputtext name="_ctext" width="${ parent.width-2 }" height="$once{ parent.height-2 }"
+- x="1" y="1" bgcolor="white" >
++ x="1" y="1" bgcolor="white" isrtl="${parent.parent._inverseWording.getValue()}">
+ <handler name="onkeyup" args="key">
+ <![CDATA[
+ // 13 is return
+@@ -62,7 +62,7 @@
+ parent.objMessage[2] = 'newtextmessage';
+ parent.objMessage[3] = hib.userobject.login;
+ var message = this.parent.parent.message.getText();
+- if (parent.parent._inverseWording.getValue()) message = canvas.reverseWordingsBySplit(message)
++ //if (parent.parent._inverseWording.getValue()) message = canvas.reverseWordingsBySplit(message)
+ parent.objMessage[4] = message;
+ parent.objMessage[5] = canvas.currentusercolor;
+ parent.objMessage[6] = canvas.publicSID;
+Index: WebContent/src/modules/conference/whiteboard/base/baseDrawWords.lzx
+===================================================================
+--- WebContent/src/modules/conference/whiteboard/base/baseDrawWords.lzx (revision 4707)
++++ WebContent/src/modules/conference/whiteboard/base/baseDrawWords.lzx (working copy)
+@@ -2,7 +2,7 @@
+ <library>
+
+ <class name="styleableInput" extends="customInputtext" x="1" y="1" bgcolor="0xFFFFFF" multiline="true"
+- width="${ parent.width-2 }" height="${ parent.height-2 }" >
++ width="${ parent.width-2 }" height="${ parent.height-2 }">
+
+ <attribute name="startAdjustHight" value="false" type="boolean" />
+
+@@ -78,7 +78,7 @@
+
+ this.refObj.drawTextField(this._textview._textview.getURLEncodedText(),
+ this._textview._textview.width,
+- this._textview._textview.height,x,y);
++ this._textview._textview.height,x,y,this._inverseWording.getValue());
+
+ } else if (this._textview._textview.getURLEncodedText().length!=0 && this.inittext.length!=0){
+
+@@ -97,7 +97,7 @@
+ this.refObj.setTextFieldByName(this.initTextName,
+ this._textview._textview.getURLEncodedText(),
+ this._textview._textview.width,
+- x,y,this._textview._textview.height);
++ x,y,this._textview._textview.height, this._inverseWording.getValue());
+
+ } else {
+ if ($debug) Debug.write("text smaller then 0",this._textview._textview.getURLEncodedText());
+@@ -119,11 +119,14 @@
+ //Events would set the height to
+ //text field default height
+ this.refObj.letterObjectClose(this);
++ if ($debug) Debug.write("oninit this.refObj.isrtl ",this.refObj.isrtl);
++
+ var t = new lz.styleableInput(this._textview,{
+ name:'_textview',text:this.inittext,
+ fontstyle:this.refObj.currentlayerstyle,
+ fontsize:this.refObj.currentlayersize,
+- fgcolor:this.refObj.currentlayerletter
++ fgcolor:this.refObj.currentlayerletter,
++ isrtl:this.refObj.isrtl
+ });
+ //if ( this.inittext.length==0 ) this.setAttribute('height',40);
+ if ( this.inittext.length!=0 ) {
+@@ -146,12 +149,14 @@
+ //if ($debug) Debug.write("callNew height-4 ",this.getHeight());
+
+ this._textview._textview.destroy();
++ if ($debug) Debug.write("callNew this.refObj.isrtl ",this.refObj.isrtl);
+ var t = new lz.styleableInput(this._textview,{
+ setFocusOnInit:false,
+ name:'_textview',text:txxt,
+ fontstyle:this.refObj.currentlayerstyle,
+ fontsize:this.refObj.currentlayersize,
+- fgcolor:this.refObj.currentlayerletter
++ fgcolor:this.refObj.currentlayerletter,
++ isrtl:this.refObj.isrtl
+ });
+ this.setAttribute("height",h);
+ </method>
+@@ -165,6 +170,21 @@
+ </method>
+
+ <view name="_textview" width="${ parent.width }" height="${ parent.height }" />
++
++ <labelCheckbox name="_inverseWording" x="2" y="${ parent.height - this.height}" labelid="580">
++ <attribute name="doUpdate" value="false" type="boolean" />
++ <handler name="oninit">
++ this.setValue(parent.refObj.isrtl);
++ this.setAttribute('doUpdate', true);
++ </handler>
++ <handler name="onvalue" args="v">
++ if (this.doUpdate) {
++ parent.refObj.setAttribute('isrtl', this.getValue());
++ parent._textview._textview.setAttribute('isrtl', this.getValue());
++ }
++ </handler>
++ <labelTooltip labelid="581" />
++ </labelCheckbox>
+
+ <resizestate name="rs" >
+ <text x="2" y="2" text="${ 'w: '+parent.width+' h: '+parent.height }" bgcolor="white"/>
+Index: WebContent/src/modules/conference/whiteboard/base/baseDrawLetter.lzx
+===================================================================
+--- WebContent/src/modules/conference/whiteboard/base/baseDrawLetter.lzx (revision 4707)
++++ WebContent/src/modules/conference/whiteboard/base/baseDrawLetter.lzx (working copy)
+@@ -48,6 +48,8 @@
+
+ <!-- "plain", "bold" , "italic" or "bolditalic". -->
+ <attribute name="currentlayerstyle" value="plain" type="string" setter="this.setNewLayerStyle(currentlayerstyle)" />
++
++ <attribute name="isrtl" value="$once{canvas.isrtl}" type="boolean"/>
+
+ <method name="setNewLayerLetter" args="cl">
+ this.currentlayerletter=cl;
+@@ -110,22 +112,22 @@
+ ]]>
+ </method>
+
+- <method name="drawTextField" args="textforfield,width,height,x,y" >
++ <method name="drawTextField" args="textforfield,width,height,x,y,isrtl" >
+
+ //Debug.write("drawTextField: ",textforfield,width,x,y);
+ var tempO = this.newTextField(this, 'letter' + this.getCounter(),
+ textforfield, width, height, x, y, this.currentlayersize,
+- this.currentlayerletter, this.currentlayerstyle);
++ this.currentlayerletter, this.currentlayerstyle,isrtl);
+ this.layers.push(tempO);
+ this.drawTextFieldregister(textforfield, width, x, y,
+ this.currentlayersize, this.currentlayerletter,
+ this.currentlayerstyle, tempO.height, this
+- .getSWFDocumentStatus(), this.getZIndex());
++ .getSWFDocumentStatus(), this.getZIndex(), isrtl);
+ </method>
+
+ <!-- editModus -->
+- <method name="setTextFieldByName" args="txtName,textforfield,width,x,y,height" >
+- if ($debug) Debug.write("drawTextFieldByName ",txtName,textforfield,width,x,y);
++ <method name="setTextFieldByName" args="txtName,textforfield,width,x,y,height,isrtl" >
++ if ($debug) Debug.write("drawTextFieldByName ",txtName,textforfield,width,x,y,isrtl);
+ //this.checkForChanges(txtName,textforfield,width,x,y,height);
+ this.edittextLetterObject.setAttribute('text',textforfield);
+ this.edittextLetterObject.setTextEncoded(textforfield);
+@@ -135,6 +137,7 @@
+ this.edittextLetterObject.setAttribute('fontsize',this.currentlayersize);
+ this.edittextLetterObject.setAttribute('fgcolor',this.currentlayerletter);
+ this.edittextLetterObject.setAttribute('fontstyle',this.currentlayerstyle);
++ this.edittextLetterObject.setAttribute('textalign', isrtl ? 'right' : 'left');
+ this.updateObjectBounds();
+ this.updateByEditLetterObject();
+ //this.setModus('hand');
+@@ -212,7 +215,8 @@
+ this.baseactionobjectList[eg][1] = this.edittextLetterObject.text;
+ this.baseactionobjectList[eg][2] = this.edittextLetterObject.fgcolor;
+ this.baseactionobjectList[eg][3] = this.edittextLetterObject.fontsize;
+- this.baseactionobjectList[eg][4] = this.edittextLetterObject.fontstyle;
++ this.baseactionobjectList[eg][4] = this.edittextLetterObject.fontstyle;
++ this.baseactionobjectList[eg][5] = this.edittextLetterObject.isrtl;
+ this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-5] = this.edittextLetterObject.x
+ this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-4] = this.edittextLetterObject.y;
+ this.baseactionobjectList[eg][this.baseactionobjectList[eg].length-3] = this.edittextLetterObject.width;
+@@ -237,6 +241,7 @@
+ editObj.setAttribute('fontsize',actionObject[3]);
+ editObj.setAttribute('fgcolor',actionObject[2]);
+ editObj.setAttribute('fontstyle',actionObject[4]);
++ editObj.setAttribute('isrtl',actionObject[5]);
+ </method>
+
+ <method name="checkForChanges" args="txtName,textforfield,width,x,y,height">
+@@ -252,12 +257,13 @@
+ this.newTextField(obj,actionObject[actionObject.length-1],actionObject[1],
+ actionObject[actionObject.length-3],actionObject[actionObject.length-2],
+ actionObject[actionObject.length-5],actionObject[actionObject.length-4],
+- actionObject[3],actionObject[2],actionObject[4]);
++ actionObject[3],actionObject[2],actionObject[4], actionObject[5]);
+
+ this.doSWFDocumentStatus(this.currentlayer,actionObject[actionObject.length-7]);
+ </method>
+
+- <method name="newTextField" args="obj,naming,textforfield,width,height,x,y,fontsize,fgcolor,fontstyle">
++ <method name="newTextField" args="obj,naming,textforfield,width,height,x,y,fontsize,fgcolor,fontstyle,isrtl">
++ if ($debug) Debug.write(obj,naming,textforfield,width,height,x,y,fontsize,fgcolor,fontstyle,isrtl);
+ this.currentlayer = new lz.whiteBoardTextField(obj, {
+ name : naming,
+ x : x,
+@@ -268,29 +274,31 @@
+ text : textforfield,
+ fontsize : fontsize,
+ fgcolor : fgcolor,
+- fontstyle : fontstyle
++ fontstyle : fontstyle,
++ textalign: isrtl ? 'right' : 'left'
+ });
+ this.currentlayer.setTextEncoded(textforfield);
+ //Add Layer to global Layer
+ return this.currentlayer;
+ </method>
+
+- <method name="drawTextFieldregister" args="textforfield,width,x,y,fontsize,fgcolor,fontstyle,height,swfObj,zIndex">
++ <method name="drawTextFieldregister" args="textforfield,width,x,y,fontsize,fgcolor,fontstyle,height,swfObj,zIndex,isrtl">
+ var actionObject = new Array();
+ actionObject[0] = "letter";
+ actionObject[1] = textforfield;
+ actionObject[2] = fgcolor;
+ actionObject[3] = fontsize;
+ actionObject[4] = fontstyle;
+- actionObject[5] = zIndex;//-8
+- actionObject[6] = swfObj;//-7
+- actionObject[7] = this.counter;//-6
+- actionObject[8] = x;//-5
+- actionObject[9] = y;//-4
+- actionObject[10] = width;//-3
+- actionObject[11] = height;//-2
+- actionObject[12] = this.currentlayer.name;//-1
+- this.baseactionobjectList.push(actionObject);
++ actionObject[5] = isrtl;
++ actionObject[6] = zIndex;//-8
++ actionObject[7] = swfObj;//-7
++ actionObject[8] = this.counter;//-6
++ actionObject[9] = x;//-5
++ actionObject[10] = y;//-4
++ actionObject[11] = width;//-3
++ actionObject[12] = height;//-2
++ actionObject[13] = this.currentlayer.name;//-1
++ this.baseactionobjectList.push(actionObject);
+ this.checkStepLayers();
+ this.onsharedMessage('draw',actionObject);
+ </method>
+Index: WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx
+===================================================================
+--- WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx (revision 4707)
++++ WebContent/src/modules/conference/tabcontent/chat/chatTabItemEmoticons.lzx (working copy)
+@@ -35,12 +35,12 @@
+ //Debug.write("downloadurl "+downloadurl);
+ this._userpic.setAttribute('src',downloadurl);
+
+- if(canvas.isrtl == 'true'){
++ if(canvas.isrtl){
+ if($debug) Debug.write("chatTabItemEmoticons RTL is set");
+
+- this.header_user.setAttribute('textalign', 'right');
+- this.header_time.setAttribute('align', 'left');
+- this.header_time.setAttribute('x', '40');
++ //this.header_user.setAttribute('textalign', 'right');
++ //this.header_time.setAttribute('align', 'left');
++ //this.header_time.setAttribute('x', '40');
+ this.multi.setAttribute('textalign', 'right');
+ this.multi.setAttribute('align', 'right');
+ }
+@@ -63,7 +63,7 @@
+ </image>
+
+
+- <text text="$once{ parent.username }" x="40" resize="false" fontsize="10"
++ <text text="$once{ canvas.isrtl ? canvas.reverseWordingsBySplit(parent.username) : parent.username }" x="40" resize="false" fontsize="10"
+ width="$once{ parent.width - 40 }" bgcolor="$once{ parent.usercolor }"
+ name="header_user" />
+
+@@ -149,7 +149,7 @@
+ <!-- space between each line of text -->
+ <attribute name="leading" value="5" type="number" />
+
+- <text multiline="true" x="40" y="20" width="$once{ parent.width - 40 }" fontsize="11" selectable="true" name="multi" >
++ <text multiline="true" x="40" y="20" width="$once{ parent.width - 40 }" fontsize="11" selectable="true" name="multi">
+ <handler name="oninit">
+ <![CDATA[
+
+Index: WebContent/src/modules/conference/tabcontent/chat/chatTabBottom.lzx
+===================================================================
+--- WebContent/src/modules/conference/tabcontent/chat/chatTabBottom.lzx (revision 4707)
++++ WebContent/src/modules/conference/tabcontent/chat/chatTabBottom.lzx (working copy)
+@@ -13,15 +13,9 @@
+ this._ctext.setAttribute('text',txt);
+ </method>
+ <customInputtext name="_ctext" width="${ parent.width-2 }" height="$once{ parent.height-2 }"
+- x="1" y="1" bgcolor="white" >
++ x="1" y="1" bgcolor="white" isrtl="${parent.parent._inverseWording.getValue()}">
+ <handler name="onkeyup" args="key">
+ <![CDATA[
+- if ($debug) Debug.write("onkeyup");
+-
+- var reverse = canvas.reverseAll(parent.getText());
+- if ($debug) Debug.write("reverse : ", reverse);
+-
+- // parent.setText(reverse);
+ // 13 is return
+ if ((key==27) || (key==13)) {
+ this.parent.parent._button._button.onclick.sendEvent();
+Index: WebContent/src/base/mainMethods.lzx
+===================================================================
+--- WebContent/src/base/mainMethods.lzx (revision 4707)
++++ WebContent/src/base/mainMethods.lzx (working copy)
+@@ -9,7 +9,7 @@
+
+ if($debug) Debug.write("reInit");
+
+- if(canvas.isrtl == 'true'){
++ if(canvas.isrtl){
+ if($debug) Debug.write("reInit : resetting key");
+
+ this.setAttribute('key', '');
+Index: WebContent/src/base/components/text/customEdittext.lzx
+===================================================================
+--- WebContent/src/base/components/text/customEdittext.lzx (revision 4707)
++++ WebContent/src/base/components/text/customEdittext.lzx (working copy)
+@@ -2,7 +2,11 @@
+ <library>
+
+ <class name="customEdittext" extends="inputtext" bgcolor="0xFFFFFF" fontsize="11" height="20" >
+-
++
++ <include href="rtl.lzx" />
++
++ <attribute name="isrtl" value="false" type="boolean"/>
++
+ <view name="v_border" height="1" bgcolor="black" width="$once{parent.width}" />
+ <view name="h_border" width="1" y="1" bgcolor="black" height="$once{parent.height -1}" />
+
+@@ -18,6 +22,14 @@
+ <handler name="onfocus" args="f">
+ this.preText = this.getText();
+ </handler>
++
++ <handler name="onisrtl">
++ if(this.isrtl){
++ this.setAttribute('textalign', 'right');
++ } else{
++ this.setAttribute('textalign', 'left');
++ }
++ </handler>
+
+ <handler name="oninit">
+ //this.field.setAttribute("bgcolor",0xFFFFFF);
+@@ -26,19 +38,23 @@
+ <handler name="ontext" args="txt">
+ <![CDATA[
+
+- //
+-
++ //if ($debug) Debug.write("ontext", txt);
++
++ if (txt == null || txt.length == 0) {
++ return;
++ }
++
++ if(this.isrtl) {
++ this.setAttribute('text', this.rtl(txt));
++ }
++
+ if (System.capabilities.os.indexOf('Linux')==-1) {
+ return;
+ }
+
+ //if ($debug) Debug.write("System.capabilities.os -- START ",System.capabilities.os,txt);
+
+- if (txt == null || txt.length == 0) {
+- return;
+- }
+
+-
+ //UTF8 character remappings
+ var cp1252 = new Object();
+ cp1252[0x20ac]=0x80;
+@@ -75,9 +91,10 @@
+
+ var i=Selection.getCaretIndex()-1;
+
+- //if ($debug) Debug.write("i",i,Selection.getCaretIndex());
++ if ($debug) Debug.write("i",i,Selection.getCaretIndex());
+
+ var d=i;
++
+
+ //if ($debug) Debug.write("DO WHILE -1- ",t.charCodeAt(i),cp1252[t.charCodeAt(i)],i,0x80,0xBF);
+
+@@ -122,7 +139,6 @@
+ }
+
+ //if ($debug) Debug.write("-- END ",this.text);
+-
+ ]]>
+ </handler>
+
+@@ -185,7 +201,6 @@
+ </handler>
+ </browserjavascriptcallback>
+
+-
+ <method name="setLabelId" args="_labelid" >
+ this.labelid = _labelid;
+ this.setAttribute('text',canvas.getLabelName(this.labelid));
+Index: WebContent/src/base/components/text/customInputtext.lzx
+===================================================================
+--- WebContent/src/base/components/text/customInputtext.lzx (revision 4707)
++++ WebContent/src/base/components/text/customInputtext.lzx (working copy)
+@@ -2,39 +2,44 @@
+ <library>
+
+ <class name="customInputtext" extends="inputtext">
+-
+- <handler name="onfocus">
+-
+- if ($debug) Debug.write("customInputtext onFocus : ", canvas.isrtl);
+-
+-
+- if(canvas.isrtl == 'true'){
+- if ($debug) Debug.write("customInputtext onFocus : RTL is set");
+- this.setAttribute('textalign', 'right');
++
++ <include href="rtl.lzx"/>
++
++ <attribute name="isrtl" value="false" type="boolean"/>
++
++ <handler name="oninit">
++ if(this.isrtl){
++ this.setAttribute('textalign', 'right');
++ } else{
++ this.setAttribute('textalign', 'left');
+ }
+- else{
+- if ($debug) Debug.write("customInputtext onFocus : RTL is NOT set");
+- this.setAttribute('textalign', 'left');
+-
++ </handler>
++
++ <handler name="onisrtl">
++ if(this.isrtl){
++ this.setAttribute('textalign', 'right');
++ } else{
++ this.setAttribute('textalign', 'left');
+ }
+- </handler>
+-
+- <handler name="ontext" args="txt">
++ </handler>
++
++ <handler name="ontext" args="txt">
+ <![CDATA[
+-
+- //
+-
+- if (System.capabilities.os.indexOf('Linux')==-1) {
+- return;
+- }
+-
+- //if ($debug) Debug.write("System.capabilities.os -- START ",System.capabilities.os,txt);
+-
+- if (txt == null || txt.length == 0) {
++ //if ($debug) Debug.write("ontext", txt);
++
++ if (txt == null || txt.length == 0) {
++ return;
++ }
++
++ if(this.isrtl) {
++ this.setAttribute('text', this.rtl(txt));
++ }
++
++ if (System.capabilities.os.indexOf('Linux')==-1) {
+ return;
+- }
+-
+-
++ }
++
++
+ //UTF8 character remappings
+ var cp1252 = new Object();
+ cp1252[0x20ac]=0x80;
+@@ -64,35 +69,35 @@
+ cp1252[0x0153]=0x9c;
+ cp1252[0x017e]=0x9e;
+ cp1252[0x0178]=0x9f;
+-
+-
+- var s=eval(Selection.getFocus());
++
++
++ var s=eval(Selection.getFocus());
+ var t=txt;
+-
+- var i=Selection.getCaretIndex()-1;
+-
++
++ var i=Selection.getCaretIndex()-1;
++
+ //if ($debug) Debug.write("i",i,Selection.getCaretIndex());
+-
++
+ var d=i;
+-
++
+ //if ($debug) Debug.write("DO WHILE -1- ",t.charCodeAt(i),cp1252[t.charCodeAt(i)],i,0x80,0xBF);
+-
++
+ while (((t.charCodeAt(i)>=0x80 && t.charCodeAt(i)<=0xBF) || (cp1252[t.charCodeAt(i)])) && i>0) {
+-
++
+ //if ($debug) Debug.write("DO WHILE -2- ",t.charCodeAt(i),cp1252[t.charCodeAt(i)],i);
+-
++
+ if (cp1252[t.charCodeAt(i)]) {
+ t=t.substr(0,i)+String.fromCharCode(cp1252[t.charCodeAt(i)])+t.substr(i+1);
+ }
+ i--;
+ }
+- if (i==d) {
++ if (i==d) {
+ //if ($debug) Debug.write("i == d NOTHING TO REPLACE!");
+- return;
++ return;
+ }
+-
++
+ var u=0;
+-
++
+ if (t.charCodeAt(i)>=0xC2 && t.charCodeAt(i)<=0xDF && d-i==1) {
+ // two-byte sequence
+ u= (t.charCodeAt(i+1) & 0x3F) +
+@@ -106,23 +111,22 @@
+ ((t.charCodeAt(i+1) & 0x3C) << 6 ) +
+ ((t.charCodeAt(i ) & 0x0F) << 12);
+ }
+-
++
+ if (u!=0) {
+ //if ($debug) Debug.write("Replace String -1- ",txt,u,"Replace With ",String.fromCharCode(u));
+-
++
+ this.setAttribute("text",t.slice(0,i)+String.fromCharCode(u)+t.slice(d+1));
+-
++
+ //if ($debug) Debug.write("Replace String -2- ",txt,u);
+-
++
+ this.setAttribute("text",this.text.split(String.fromCharCode(0x03)).join(''));
+ }
+-
++
+ //if ($debug) Debug.write("-- END ",this.text);
+-
++
+ ]]>
+ </handler>
+-
+-
++
+ </class>
+
+ </library>
+Index: WebContent/src/base/components/text/rtl.lzx
+===================================================================
+--- WebContent/src/base/components/text/rtl.lzx (revision 0)
++++ WebContent/src/base/components/text/rtl.lzx (revision 0)
+@@ -0,0 +1,33 @@
++<method name="rtl" args="txt"><![CDATA[
++ var caret_i = Selection.getCaretIndex()-1;
++ //if ($debug) Debug.write("caret_i: ", caret_i, "txt.charAt(caret_i): ", txt.charAt(caret_i));
++ if(txt.charAt(caret_i) == ' ') {
++ if(caret_i == txt.length-1 || caret_i < txt.length-1 && txt.charAt(caret_i+1) == ' ') {
++ //if ($debug) Debug.write("txt.substr(0, caret_i): ", txt.substr(0, caret_i));
++ //if ($debug) Debug.write("(caret_i < txt.length-1): ", (caret_i < txt.length-1));
++ //if ($debug) Debug.write("txt.slice(caret_i + 1, txt.length): ", txt.slice(caret_i + 1, txt.length));
++ txt = txt.substr(0, caret_i) + ((caret_i < txt.length-1) ? txt.slice(caret_i + 1, txt.length) : "");
++ //if ($debug) Debug.write("remove whitespace: ", txt);
++ }
++ var found = false;
++ for(var i = caret_i-1; i>=0; i--) {
++ if(txt.charAt(i) == ' ') {
++ found = true;
++ txt = txt.slice(0, i) + " " + txt.slice(i + 1, txt.length)
++ //if ($debug) Debug.write("next word: ", i, txt);
++ Selection.setSelection(i,i);
++ break;
++ } else if(txt.charAt(i) == '\n' || txt.charAt(i) == '\r') {
++ found = true;
++ txt = txt.slice(0, i+1) + " " + txt.slice(i + 1, txt.length)
++ Selection.setSelection(i+1,i+1);
++ break;
++ }
++ }
++ if(!found) {
++ txt = " " + txt;
++ Selection.setSelection(0,0);
++ }
++ }
++ return txt;
++]]></method>
+Index: WebContent/src/base/hibernate/hibRtmpConnection.lzx
+===================================================================
+--- WebContent/src/base/hibernate/hibRtmpConnection.lzx (revision 4707)
++++ WebContent/src/base/hibernate/hibRtmpConnection.lzx (working copy)
+@@ -234,6 +234,7 @@
+ userlang = canvas.language_id;
+ } else if (userlang == -1) {
+ var lang_id = canvas.default_lang_id;
++ var rtl = canvas.isrtl;
+
+ var browserLang = flash.external.ExternalInterface.call("function(){return window.navigator.systemLanguage || window.navigator.userLanguage || window.navigator.language;}");
+ if (browserLang == null) {
+@@ -266,11 +267,15 @@
+ i = (fullMatch != -1) ? fullMatch : partMatch;
+ xpath = "languagesSet:/item[" + i + "]/language_id/text()";
+ lang_id = languagesSet.getPointer().xpathQuery(xpath);
++ xpath = "boolean(languagesSet:/item[" + i + "]/rtl/text())";
++ rtl = languagesSet.getPointer().xpathQuery(xpath);
++ if($debug) Debug.write("RTL: ", rtl);
+ }
+ }
+-
+ if (canvas.language_id == 0) {
++
+ userlang = lang_id;
++ canvas.isrtl = rtl;
+ } else {
+ userlang = canvas.language_id;
+ }
+@@ -488,6 +493,17 @@
+ ]]>
+ </handler>
+ </netRemoteCallHib>
++
++ <netRemoteCallHib name="getLanguage" funcname="languageservice.getLanguage" >
++ <netparam><method name="getValue">return parent.parent.userlang;</method></netparam>
++ <handler name="ondata" args="value">
++ <![CDATA[
++ if($debug) Debug.write("hibRtmpConnection/getLanguage: ", value);
++ canvas.setAttribute('isrtl', value.rtl);
++ parent.getLanguageByIdAndMax.doCall();
++ ]]>
++ </handler>
++ </netRemoteCallHib>
+
+ <netRemoteCallHib name="getLanguageByIdAndMax" funcname="languageservice.getLanguageByIdAndMax" >
+ <attribute name="start" value="0" type="number" />
+@@ -499,7 +515,7 @@
+ <handler name="ondata" args="value">
+ <![CDATA[
+ if($debug) Debug.write("hibRtmpConnection/userlang:[",parent.userlang,"]");
+- //if($debug) Debug.write("hibRtmpConnection/getLanguageByIdAndMax:[",value,"]");
++ if($debug) Debug.write("hibRtmpConnection/getLanguageByIdAndMax:[",value,"]");
+ setLabelObjectByHundred(this.start,value);
+ //The onResult-Handler will be called be the rtmpconnection
+ if (this.start <= max){
+@@ -784,7 +800,7 @@
+
+ }
+ } else {
+- hib.getLanguageByIdAndMax.doCall();
++ hib.getLanguage.doCall();
+ canvas.focusOnItem = null;
+ }
+ } else {
+Index: WebContent/src/base/auth/checkLoginData.lzx
+===================================================================
+--- WebContent/src/base/auth/checkLoginData.lzx (revision 4707)
++++ WebContent/src/base/auth/checkLoginData.lzx (working copy)
+@@ -373,7 +373,7 @@
+ }
+ } else {
+
+- hib.getLanguageByIdAndMax.doCall();
++ hib.getLanguage.doCall();
+ canvas.focusOnItem = null;
+ parent.close();
+
+Index: build.xml
+===================================================================
+--- build.xml (revision 4707)
++++ build.xml (working copy)
+@@ -157,7 +157,7 @@
+ <mkdir dir="${main.out.dir}" />
+ </target>
+
+- <condition property="db.provider" value="${db}" else="derby">
++ <condition property="db.provider" value="${db}" else="mysql">
+ <isset property="db" />
+ </condition>
+
+@@ -460,7 +460,7 @@
+ </signjar>
+ </target>
+
+- <target name = "compile.laszlo.main" depends="compile.laszlo.main.debug">
++ <target name = "compile.laszlo.rtl">
+ <java classname = "org.openlaszlo.compiler.Main" fork = "true"
+ newenvironment="true"
+ failonerror="true"
+@@ -472,6 +472,22 @@
+ <jvmarg value = "-Dlzproxied=${laszlo.proxied}"/>
+ <jvmarg value = "-Xms1024M"/>
+ <jvmarg value = "-Xmx1024M"/>
++ <arg line="--runtime=swf8 --dir ${out.dir.swf} --mcache on --onerror warn rtl.lzx" />
++ </java>
++ </target>
++
++ <target name = "compile.laszlo.main">
++ <java classname = "org.openlaszlo.compiler.Main" fork = "true"
++ newenvironment="true"
++ failonerror="true"
++ dir = "${laszlo.src.dir}"
++ classpathref="laszlo.lib"
++ >
++ <jvmarg value = "-DLPS_HOME=${laszlo.home}"/>
++ <jvmarg value = "-Dlzdebug=${laszlo.debug}"/>
++ <jvmarg value = "-Dlzproxied=${laszlo.proxied}"/>
++ <jvmarg value = "-Xms1024M"/>
++ <jvmarg value = "-Xmx1024M"/>
+ <arg line="--runtime=swf8 --dir ${out.dir.swf} --mcache on --onerror warn main.lzx" />
+ </java>
+ </target>
Modified: incubator/openmeetings/trunk/singlewebapp/src/META-INF/mysql_persistence.xml
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/META-INF/mysql_persistence.xml?rev=1381115&r1=1381114&r2=1381115&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/META-INF/mysql_persistence.xml (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/META-INF/mysql_persistence.xml Wed Sep 5 09:49:43 2012
@@ -77,7 +77,7 @@
<property name="openjpa.ConnectionDriverName" value="org.apache.commons.dbcp.BasicDataSource" />
<property name="openjpa.ConnectionProperties"
value="DriverClassName=com.mysql.jdbc.Driver
- , Url=jdbc:mysql://localhost:3306/openmeetings?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf-8&connectionCollation=utf8_general_ci&cachePrepStmts=true&cacheCallableStatements=true&cacheServerConfiguration=true&useLocalSessionState=true&elideSetAutoCommits=true&alwaysSendSetIsolation=false&enableQueryTimeouts=false&prepStmtCacheSize=3000&prepStmtCacheSqlLimit=1000
+ , Url=jdbc:mysql://192.168.72.105:3306/openmeetings_win?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf-8&connectionCollation=utf8_general_ci&cachePrepStmts=true&cacheCallableStatements=true&cacheServerConfiguration=true&useLocalSessionState=true&elideSetAutoCommits=true&alwaysSendSetIsolation=false&enableQueryTimeouts=false&prepStmtCacheSize=3000&prepStmtCacheSqlLimit=1000
, MaxActive=100
, MaxWait=10000
, TestOnBorrow=true
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java?rev=1381115&r1=1381114&r2=1381115&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/Application.java Wed Sep 5 09:49:43 2012
@@ -26,6 +26,10 @@ import org.apache.wicket.markup.MarkupPa
import org.apache.wicket.markup.MarkupResourceStream;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.IRequestMapper;
+import org.apache.wicket.request.Request;
+import org.apache.wicket.request.Url;
import org.apache.wicket.settings.IPageSettings;
import org.openmeetings.web.pages.MainPage;
import org.openmeetings.web.pages.auth.SignInPage;
@@ -48,6 +52,26 @@ public class Application extends Authent
});
super.init();
mountPage("signin", getSignInPageClass());
+ //TODO custom mapper to hack URL
+ /*
+ getRootRequestMapperAsCompound().add(new IRequestMapper() {
+
+ public IRequestHandler mapRequest(Request request) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Url mapHandler(IRequestHandler requestHandler) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public int getCompatibilityScore(Request request) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+ });
+ */
}
@Override
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/HeaderPanel.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/HeaderPanel.html?rev=1381115&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/HeaderPanel.html (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/HeaderPanel.html Wed Sep 5 09:49:43 2012
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd" lang="en">
+ <wicket:panel>
+ <div id="header">
+ <span id="logo"></span><span wicket:id="appName"></span>
+ </div>
+ </wicket:panel>
+</html>
\ No newline at end of file
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/HeaderPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/HeaderPanel.java?rev=1381115&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/HeaderPanel.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/HeaderPanel.java Wed Sep 5 09:49:43 2012
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.openmeetings.web.components;
+
+import org.apache.wicket.markup.html.basic.Label;
+
+public class HeaderPanel extends BasePanel {
+ private static final long serialVersionUID = 9020842845946685193L;
+
+ public HeaderPanel(String id, String appName) {
+ super(id);
+ add(new Label("appName", appName));
+ }
+}
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/MenuPanel.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/MenuPanel.html?rev=1381115&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/MenuPanel.html (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/MenuPanel.html Wed Sep 5 09:49:43 2012
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd" lang="en">
+ <wicket:head>
+ <link media="screen" type="text/css" rel="stylesheet" href="css/jMenu.jquery.css"/>
+ </wicket:head>
+ <wicket:panel>
+ <script type="text/javascript" src="js/jMenu.jquery.min.js"></script>
+ <script type="text/javascript">
+ $(function() {
+ $("#jMenu").jMenu({
+ openClick : false
+ , ulWidth : 'auto'
+ , effects : {
+ effectSpeedOpen : 300
+ , effectSpeedClose : 300
+ , effectTypeOpen : 'slide'
+ , effectTypeClose : 'slide'
+ , effectOpen : 'linear'
+ , effectClose : 'linear'
+ }
+ , TimeBeforeOpening : 100
+ , TimeBeforeClosing : 400
+ , animatedText : false
+ , paddingLeft: 1
+ });
+ });
+ </script>
+ <ul id="jMenu">
+ <li wicket:id="mainItem">
+ <a class="fNiv" href="#"><span wicket:id="label"></span></a>
+ <ul wicket:enclosure="childItem">
+ <li class="arrow" style="width: 97px; "></li>
+ <li wicket:id="childItem">
+ <a wicket:id="link" href="#">
+ <span wicket:id="name"></span><br />
+ <span wicket:id="description"></span>
+ </a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </wicket:panel>
+</html>
\ No newline at end of file
Added: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/MenuPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/MenuPanel.java?rev=1381115&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/MenuPanel.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/components/MenuPanel.java Wed Sep 5 09:49:43 2012
@@ -0,0 +1,131 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.openmeetings.web.components;
+
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.openmeetings.app.data.basic.Navimanagement;
+import org.openmeetings.app.persistence.beans.basic.Naviglobal;
+import org.openmeetings.app.persistence.beans.basic.Navimain;
+import org.openmeetings.web.app.Application;
+import org.openmeetings.web.app.WebSession;
+import org.openmeetings.web.components.admin.UsersPanel;
+
+public class MenuPanel extends BasePanel {
+ private static final long serialVersionUID = 6626039612808753514L;
+
+ private enum MenuActions {
+ dashboardModuleStartScreen
+ , dashboardModuleCalendar
+ , recordModule
+ , conferenceModuleRoomList
+ , eventModuleRoomList
+ , moderatorModuleUser
+ , moderatorModuleRoom
+ , adminModuleUser
+ , adminModuleConnections
+ , adminModuleOrg
+ , adminModuleRoom
+ , adminModuleConfiguration
+ , adminModuleLanguages
+ , adminModuleLDAP
+ , adminModuleBackup
+ , adminModuleServers
+ }
+
+ public MenuPanel(String id, final MarkupContainer contents) {
+ super(id);
+ setMarkupId(id);
+
+ final Navimanagement man = Application.getBean(Navimanagement.class);
+ add(new ListView<Naviglobal>("mainItem", man.getMainMenu(WebSession.getUserLevel(), WebSession.getUserId(), WebSession.getLanguage())) {
+ private static final long serialVersionUID = 2173926553418745231L;
+
+ @Override
+ protected void populateItem(ListItem<Naviglobal> item) {
+ Naviglobal gl = item.getModelObject();
+ item.add(new Label("label", gl.getLabel().getValue()).setRenderBodyOnly(true));
+
+ item.add(new ListView<Navimain>("childItem", gl.getMainnavi()) {
+ private static final long serialVersionUID = 3609635268338379087L;
+
+ @Override
+ protected void populateItem(ListItem<Navimain> item) {
+ Navimain m = item.getModelObject();
+ final String name = m.getLabel().getValue();
+ final String desc = m.getTooltip().getValue();
+ final MenuActions action = MenuActions.valueOf(m.getAction());
+ item.add(new AjaxLink<Void>("link") {
+ private static final long serialVersionUID = 5632618935550133709L;
+ {
+ add(new Label("name", name).setRenderBodyOnly(true));
+ add(new Label("description", desc).setRenderBodyOnly(true));
+ }
+
+ public void onClick(AjaxRequestTarget target) {
+ switch(action) {
+ case dashboardModuleStartScreen:
+ break;
+ case dashboardModuleCalendar:
+ break;
+ case recordModule:
+ break;
+ case conferenceModuleRoomList:
+ //requires params
+ break;
+ case eventModuleRoomList:
+ break;
+ case moderatorModuleUser:
+ break;
+ case moderatorModuleRoom:
+ break;
+ case adminModuleUser:
+ target.add(contents.replace(new UsersPanel("child")));
+ //link = new BookmarkablePageLink<Void>("link", UsersPanel.class);
+ break;
+ case adminModuleConnections:
+ break;
+ case adminModuleOrg:
+ break;
+ case adminModuleRoom:
+ break;
+ case adminModuleConfiguration:
+ break;
+ case adminModuleLanguages:
+ break;
+ case adminModuleLDAP:
+ break;
+ case adminModuleBackup:
+ break;
+ case adminModuleServers:
+ break;
+ }
+ };
+ });
+ }
+ }.setReuseItems(true));
+ }
+ }.setReuseItems(true));
+ }
+
+}
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html?rev=1381115&r1=1381114&r2=1381115&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.html Wed Sep 5 09:49:43 2012
@@ -24,9 +24,7 @@
<title><span wicket:id="pageTitle">[title]</span></title>
</head>
<body>
- <div id="header">
- <span id="logo"></span><span id="appName" wicket:id="appName"></span>
- </div>
+ <div wicket:id="header"></div>
<wicket:child />
</body>
</html>
\ No newline at end of file
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.java?rev=1381115&r1=1381114&r2=1381115&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/BasePage.java Wed Sep 5 09:49:43 2012
@@ -22,6 +22,7 @@ import org.apache.wicket.markup.html.Web
import org.apache.wicket.markup.html.basic.Label;
import org.openmeetings.app.data.basic.Configurationmanagement;
import org.openmeetings.web.app.Application;
+import org.openmeetings.web.components.HeaderPanel;
public abstract class BasePage extends WebPage {
private static final long serialVersionUID = -6237917782433412496L;
@@ -29,6 +30,6 @@ public abstract class BasePage extends W
public BasePage() {
String appName = Application.getBean(Configurationmanagement.class).getAppName();
add(new Label("pageTitle", appName).setRenderBodyOnly(true));
- add(new Label("appName", appName));
+ add(new HeaderPanel("header", appName));
}
}
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.html?rev=1381115&r1=1381114&r2=1381115&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.html (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.html Wed Sep 5 09:49:43 2012
@@ -21,31 +21,13 @@
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd" lang="en">
<wicket:head>
- <link media="screen" type="text/css" rel="stylesheet" href="css/jMenu.jquery.css"/>
<link media="screen" type="text/css" rel="stylesheet" href="css/theme.css"/>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.23.custom.min.js"></script>
- <script type="text/javascript" src="js/jMenu.jquery.min.js"></script>
<link media="screen" type="text/css" rel="stylesheet" href="css/jquery-ui-1.8.23.custom.css"/>
<script type="text/javascript">
$(function() {
- $("#jMenu").jMenu({
- openClick : false
- , ulWidth : 'auto'
- , effects : {
- effectSpeedOpen : 300
- , effectSpeedClose : 300
- , effectTypeOpen : 'slide'
- , effectTypeClose : 'slide'
- , effectOpen : 'linear'
- , effectClose : 'linear'
- }
- , TimeBeforeOpening : 100
- , TimeBeforeClosing : 400
- , animatedText : false
- , paddingLeft: 1
- });
Wicket.Event.subscribe('/ajax/call/failure'
, function(jqEvent, attributes, jqXHR, errorThrown, textStatus) { $('#busy_indicator').hide();});
Wicket.Event.subscribe('/ajax/call/before'
@@ -58,22 +40,7 @@
<wicket:extend>
<div id="topLinks"><wicket:ommessage key="1188"/>|<wicket:ommessage key="5"/>|<wicket:ommessage key="310"/>|<wicket:ommessage key="284"/></div>
<div id="busy_indicator">Loading ...</div>
- <div id="menu">
- <ul id="jMenu">
- <li wicket:id="mainItem">
- <a class="fNiv" href="#"><span wicket:id="label"></span></a>
- <ul wicket:enclosure="childItem">
- <li class="arrow" style="width: 97px; "></li>
- <li wicket:id="childItem">
- <a wicket:id="link" href="#">
- <span wicket:id="name"></span><br />
- <span wicket:id="description"></span>
- </a>
- </li>
- </ul>
- </li>
- </ul>
- </div>
+ <div wicket:id="menu"></div>
<div wicket:id="contents"><div wicket:id="child"></div></div>
</wicket:extend>
</html>
\ No newline at end of file
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.java?rev=1381115&r1=1381114&r2=1381115&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MainPage.java Wed Sep 5 09:49:43 2012
@@ -19,115 +19,20 @@
package org.openmeetings.web.pages;
import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
import org.apache.wicket.markup.html.WebMarkupContainer;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.markup.html.list.ListView;
-import org.openmeetings.app.data.basic.Navimanagement;
-import org.openmeetings.app.persistence.beans.basic.Naviglobal;
-import org.openmeetings.app.persistence.beans.basic.Navimain;
-import org.openmeetings.web.app.Application;
-import org.openmeetings.web.app.WebSession;
-import org.openmeetings.web.components.admin.UsersPanel;
+import org.openmeetings.web.components.MenuPanel;
@AuthorizeInstantiation("USER")
public class MainPage extends BasePage {
private static final long serialVersionUID = 6421960759218157999L;
- public enum MenuActions {
- dashboardModuleStartScreen
- , dashboardModuleCalendar
- , recordModule
- , conferenceModuleRoomList
- , eventModuleRoomList
- , moderatorModuleUser
- , moderatorModuleRoom
- , adminModuleUser
- , adminModuleConnections
- , adminModuleOrg
- , adminModuleRoom
- , adminModuleConfiguration
- , adminModuleLanguages
- , adminModuleLDAP
- , adminModuleBackup
- , adminModuleServers
- }
+ private final MenuPanel menu;
public MainPage() {
- final MarkupContainer contents = new WebMarkupContainer("contents");
+ MarkupContainer contents = new WebMarkupContainer("contents");
contents.add(new WebMarkupContainer("child")).setOutputMarkupId(true);
add(contents);
-
- final Navimanagement man = Application.getBean(Navimanagement.class);
- add(new ListView<Naviglobal>("mainItem", man.getMainMenu(WebSession.getUserLevel(), WebSession.getUserId(), WebSession.getLanguage())) {
- private static final long serialVersionUID = 2173926553418745231L;
-
- @Override
- protected void populateItem(ListItem<Naviglobal> item) {
- Naviglobal gl = item.getModelObject();
- item.add(new Label("label", gl.getLabel().getValue()).setRenderBodyOnly(true));
-
- item.add(new ListView<Navimain>("childItem", gl.getMainnavi()) {
- private static final long serialVersionUID = 3609635268338379087L;
-
- @Override
- protected void populateItem(ListItem<Navimain> item) {
- Navimain m = item.getModelObject();
- final String name = m.getLabel().getValue();
- final String desc = m.getTooltip().getValue();
- final MenuActions action = MenuActions.valueOf(m.getAction());
- item.add(new AjaxLink<Void>("link") {
- private static final long serialVersionUID = 5632618935550133709L;
- {
- add(new Label("name", name).setRenderBodyOnly(true));
- add(new Label("description", desc).setRenderBodyOnly(true));
- }
- public void onClick(AjaxRequestTarget target) {
- switch(action) {
- case dashboardModuleStartScreen:
- break;
- case dashboardModuleCalendar:
- break;
- case recordModule:
- break;
- case conferenceModuleRoomList:
- //requires params
- break;
- case eventModuleRoomList:
- break;
- case moderatorModuleUser:
- break;
- case moderatorModuleRoom:
- break;
- case adminModuleUser:
- target.add(contents.replace(new UsersPanel("child")));
- //link = new BookmarkablePageLink<Void>("link", UsersPanel.class);
- break;
- case adminModuleConnections:
- break;
- case adminModuleOrg:
- break;
- case adminModuleRoom:
- break;
- case adminModuleConfiguration:
- break;
- case adminModuleLanguages:
- break;
- case adminModuleLDAP:
- break;
- case adminModuleBackup:
- break;
- case adminModuleServers:
- break;
- }
- };
- });
- }
- }.setReuseItems(true));
- }
- }.setReuseItems(true));
+ menu = new MenuPanel("menu", contents);
+ add(menu);
}
}