Author: sebawagner
Date: Fri Mar 23 18:42:10 2012
New Revision: 1304555

URL: http://svn.apache.org/viewvc?rev=1304555&view=rev
Log:
OPENMEETINGS-7 - Add basic drag and drop operations / mechanism on UI side for 
calendar events in day/week/month view, split of grid class into day/month 
view, improve source code docs for calendar

Added:
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/dragEvent.lzx
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/library.lzx
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/lzDayView.lzx
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/lzMonthView.lzx
Modified:
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/library.lzx
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzCalendarGrid.lzx
    
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/lzCalendar.lzx

Added: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/dragEvent.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/dragEvent.lzx?rev=1304555&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/dragEvent.lzx
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/dragEvent.lzx
 Fri Mar 23 18:42:10 2012
@@ -0,0 +1,74 @@
+<?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>
+
+       <class name="dragEvent" extends="view">
+       
+               <attribute name="eventRef" value="null" />
+               
+               <attribute name="timeText" value="" type="string" />
+               <attribute name="titleText" value="" type="string" />
+               
+               <!---
+                       If false the time part is hidden
+                -->
+               <attribute name="showTime" value="true" type="boolean" />
+               
+               <handler name="onmouseup" reference="lz.GlobalMouse" args="who">
+               this.close();
+           </handler>
+               
+               <handler name="oninit">
+                       lz.Cursor.showHandCursor(false);
+                       lz.ModeManager.globalLockMouseEvents();
+                       this.dragger.apply();
+                       this.setShadow();
+               </handler>
+               
+               <method name="setShadow">
+               <![CDATA[
+                   var normalMC = this.getDisplayObject();
+                   var displacementMap = new flash.filters.DropShadowFilter();
+                   normalMC.filters = [displacementMap];
+               ]]>              
+           </method>
+               
+               <method name="close">
+                       this.eventRef.closeDragItem();
+                       lz.Cursor.showHandCursor(true);
+                       lz.ModeManager.globalUnlockMouseEvents();
+                       this.dragger.remove();
+                       this.destroy();
+               </method>
+               
+               <dragstate name="dragger"/>
+               
+               <view width="$once{ parent.width }" height="$once{ 
parent.height }" 
+                                               bgcolor="$once{ parent.bgcolor 
}">
+                       <text name="_time" text="$once{ parent.parent.timeText 
}" 
+                                       visibility="$once{ 
(parent.parent.showTime) ? 'visible' : 'hidden' }" />
+                       <text name="_title" x="$once{ (parent.parent.showTime) 
? 36 : 0 }" resize="false" text="$once{ parent.parent.titleText }"
+                               width="$once{ (parent.parent.showTime) ? 
parent.parent.width-36 : parent.parent.width }" />
+               </view>
+               
+       </class>
+
+</library>
\ No newline at end of file

Added: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/library.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/library.lzx?rev=1304555&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/library.lzx
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/library.lzx
 Fri Mar 23 18:42:10 2012
@@ -0,0 +1,27 @@
+<?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>
+
+       <include href="dragEvent.lzx" />
+       <include href="lzDayView.lzx" />
+       <include href="lzMonthView.lzx" />
+
+</library>

Added: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/lzDayView.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/lzDayView.lzx?rev=1304555&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/lzDayView.lzx
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/lzDayView.lzx
 Fri Mar 23 18:42:10 2012
@@ -0,0 +1,337 @@
+<?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>
+
+
+       <class name="lzDayView" extends="view" width="${ parent.width }" 
height="${ parent.height }">
+       
+               <!---
+                       Show only a single day over the whole width
+                -->
+               <attribute name="singleDayView" value="true" type="boolean" />
+       
+               <!---
+                       the row index of the day to show (makes only sense if 
singleDayView is true)
+                -->
+               <attribute name="currentDay" value="0" type="number" />
+               
+               <!---
+                       the number of days that are shown next to each other
+                -->
+               <attribute name="daysPerWeek" value="1" type="number" />
+               
+               <!--
+                       Name of the trackgroup
+                -->
+               <attribute name="dayViewTrackGroup" value="dayViewTrackGroup" 
type="string" />
+               
+               <!-- 
+                       Current Dragging object
+                -->
+               <attribute name="currentDragEvent" value="null" />
+               
+               <!-- 
+                       Current dayDate that receives the track scroll over
+                -->
+               <attribute name="currentOverTrackView" value="null" />
+               
+               <!---
+                       Prevent from re-rendering when switching the viewState 
+                -->
+               <attribute name="reRenderLock" value="false" type="boolean" />
+                       
+               <view x="41" width="${ parent.width-10 }" height="20" 
bgcolor="0xDDDDDD">
+                       <view name="days" datapath="days" width="${ 
(parent.width-41)/classroot.daysPerWeek }" clip="true"
+                                                               
bgcolor="0xDDDDDD" height="19">
+                               
+                               <handler name="oninit">
+                                       if (classroot.singleDayView) {
+                                               
this.setAttribute("datapath","days["+classroot.currentDay+"]");
+                                       }
+                               </handler>
+                                                               
+                               <text name="_title" width="${ parent.width -1 
}" fgcolor="0x666666"
+                                                               
datapath="tDate" bgcolor="0xFFFFFF" height="19" >
+                                       <attribute name="tDate" value="null" />
+                                       <handler name="ondata" args="d">
+                                               this.tDate = 
parseDateOnlyFromXmlString(d.childNodes[0].data);
+                                               var tStringWeekDay = 
canvas.dayShortNames[tDate.getDay()];
+                                               if ($debug) Debug.write("Calc 
Week day ",tStringWeekDay,this.tDate.getDay(),this.tDate);
+                                               
this.setAttribute("text",canvas.dayShortNames[this.tDate.getDay()]+" 
"+this.tDate.getDate()+"."+(this.tDate.getMonth()+1)+".");
+                                       </handler>
+                                       <handler name="onmouseover">
+                                               if (!classroot.singleDayView) {
+                                                       
this.setAttribute("fontstyle","bold");
+                                               }
+                                       </handler>
+                                       <handler name="onmouseout">
+                                               if (!classroot.singleDayView) {
+                                                       
this.setAttribute("fontstyle","plain");
+                                               }
+                                       </handler>
+                                       <handler name="onclick">
+                                               if (!classroot.singleDayView) {
+                                                       
parent.parent.parent.parent.onSelectDate.sendEvent(this.tDate);
+                                               }
+                                       </handler>
+                               </text>
+                               
+                       </view>
+                       <simplelayout axis="x" spacing="0" />
+               </view>
+               
+               <view y="20" width="${ parent.width }" height="${ 
parent.height-20 }">
+       
+                       <view width="${ parent.width }" height="${ 
parent.height }" clip="true" bgcolor="0xDDDDDD">
+               
+                               <view width="${ parent.width-10 }" height="721" 
>
+                               
+                                       <handler name="oninit">
+                                               
this.setAttribute("y",parent.height-721);
+                                       </handler>
+                                       
+                                       <handler name="ony" args="y">
+                                               
parent.parent.parent.parent.onScollContent.sendEvent(null);
+                                       </handler>
+                               
+                                       <view name="hours" width="40" 
height="720" >
+                                                       
+                                               <view name="dayBg2" 
resource="calendar_day_hours_index_bg_rsc" />
+                                               
+                                               <view>
+                                                       <handler name="oninit">
+                                                               <![CDATA[
+                                                                       for 
(var i=0;i<24;i++) {
+                                                                               
if (i<10) {
+                                                                               
        new lz.textHourHelper(this,{text:"0"+i+":00"});
+                                                                               
} else {
+                                                                               
        new lz.textHourHelper(this,{text:i+":00"});
+                                                                               
}
+                                                                       }
+                                                               ]]>
+                                                       </handler>
+                                                       <simplelayout axis="y" 
/>
+                                               </view>
+                                                       
+                                       </view>
+                                       
+                                       <view width="1" />
+                                       
+                                       <!-- The days -->
+                                       <view name="days" datapath="days" 
width="${ (parent.width-41)/classroot.daysPerWeek }" 
+                                                               height="720" 
bgcolor="0xDDDDDD" >
+                                                               
+                                               <attribute name="dayDate" 
value="null" />
+                                                               
+                                               <handler name="oninit">
+                                                       if 
(classroot.singleDayView) {
+                                                               
this.setAttribute("datapath","days["+classroot.currentDay+"]");
+                                                       }
+                                                       lz.Track.register(this, 
classroot.dayViewTrackGroup);
+                                               </handler>
+                                               
+                                               <handler 
name="onmousetrackover">
+                                                       if ($debug) 
Debug.write("onmousetrackover THIS DAY ",this);
+                                               
parent.parent.currentOverTrackView = this;
+                                           </handler>
+                                       
+                                           <handler name="onmousetrackout">
+                                               if ($debug) 
Debug.write("onmousetrackout THIS DAY ",this);
+                                               
parent.parent.currentOverTrackView = null;
+                                           </handler>
+                                           
+                                           <handler name="onmousetrackup">
+                                               
this._content.setAttribute('bgcolor', 0xFFFFFF);
+                                           </handler>
+                                               
+                                               <handler name="ondata" args="d">
+                                                       if(d is 
lz.DataNodeMixin){
+                                                               var 
lzDataPointer = new lz.datapointer();
+                                                               
lzDataPointer.setPointer(d);
+                                                               var xmlDate = 
lzDataPointer.xpathQuery('tDate/text()');
+                                                               var splitDate = 
xmlDate.split("-");
+                                                               this.dayDate = 
new Date(splitDate[0], Number(splitDate[1])-1, splitDate[2]);
+                                                       }
+                                               </handler>
+                                               
+                                               <view name="_content" width="${ 
parent.width -1 }" bgcolor="0xFFFFFF"
+                                                                               
height="720" clickable="true" showhandcursor="false">
+                                                                               
+                                                       <attribute 
name="lzCalGridTempDrawView" value="null" />
+                                                       
+                                                       <handler 
name="onmousedown">
+                                                               <![CDATA[
+                                                                       var 
heightInMinutes = this.height/1440;
+                                                                       //round 
by 30 minutes
+                                                                       var 
tPixels30Minutes = heightInMinutes*30;
+                                                                       var 
tStarty = this.getMouse("y");
+                                                                       tStarty 
= Math.round(tStarty/tPixels30Minutes)*tPixels30Minutes;
+                                                                       
this.lzCalGridTempDrawView = new lz.lzCalGridTempDrawView(this,{
+                                                                               
                                                                        
y:tStarty,
+                                                                               
                                                                        
starty:tStarty,
+                                                                               
                                                                        
height:tPixels30Minutes,
+                                                                               
                                                                        
heightInMinutes:heightInMinutes,
+                                                                               
                                                                        
tPixels30Minutes:tPixels30Minutes
+                                                                               
                                                                });
+                                                               ]]>             
                                                
+                                                       </handler>
+                                                       
+                                                       <handler 
name="onmouseup">
+                                                               if 
(this.lzCalGridTempDrawView != null) {
+                                                                       var 
tStartDate = new Date();
+                                                                       //clone 
Date to have day and month
+                                                                       
tStartDate.setTime(parent.dayDate.getTime());
+                                                                       var 
startMinutesTotal = this.lzCalGridTempDrawView.getStartMinutesTotal();
+                                                                       
tStartDate.setHours(Math.floor(startMinutesTotal/60));
+                                                                       
tStartDate.setMinutes(startMinutesTotal-(tStartDate.getHours()*60));
+                                                                       
+                                                                       var 
tEndDate = new Date();
+                                                                       //clone 
Date to have day and month
+                                                                       
tEndDate.setTime(parent.dayDate.getTime());
+                                                                       var 
endMinutesTotal = this.lzCalGridTempDrawView.getEndMinutesTotal();
+                                                                       
tEndDate.setHours(Math.floor(endMinutesTotal/60));
+                                                                       
tEndDate.setMinutes(endMinutesTotal-(tEndDate.getHours()*60));
+                                                               
+                                                                       
this.lzCalGridTempDrawView.destroy();
+                                                                       
this.lzCalGridTempDrawView = null;
+                                                                       
+                                                                       
classroot.parent.selectStartEndDateTime(tStartDate,tEndDate);
+                                                               }
+                                                       </handler>
+                                                       
+                                                       <view name="dayBg2" 
resource="calendar_one_day_hours_index_bg_rsc" stretches="width" 
+                                                               width="${ 
parent.width }"  ></view>
+                                                                               
+                                                       <view 
datapath="appointments" bgcolor="0xA59CFC" width="${ parent.width }" 
height="60">
+                                                               
+                                                               <attribute 
name="rememberX" value="-1" />
+                                                               <attribute 
name="rememberY" value="-1" />
+                                                               <attribute 
name="mouseUpDetect" value="false" type="boolean"/>
+                                                               <attribute 
name="startedToDrag" value="false" type="boolean"/>
+                                                       
+                                                               <handler 
name="ondata" args="d">
+                                                                       
<![CDATA[
+                                                                               
if (classroot.reRenderLock) {
+                                                                               
        if ($debug) Debug.info("Prevent un-neccessary Rendering!");
+                                                                               
        return;
+                                                                               
}
+                                                                               
var dataPointer = new lz.datapointer();
+                                                                               
dataPointer.setPointer(d);
+                                                                               
var startDate = 
parseDateTimeFromXmlString(dataPointer.xpathQuery('start/text()'));
+                                                                               
var endDate = parseDateTimeFromXmlString(dataPointer.xpathQuery('end/text()'));
+                                                                               
+                                                                               
if ($debug) Debug.write("COMPARE -- ",startDate,endDate);
+                                                                               
+                                                                               
var heightInMinutes = parent.height/1440;
+                                                                               
var startMin = (startDate.getHours() * 60 ) + startDate.getMinutes();
+                                                                               
var endMin = (endDate.getHours() * 60 ) + endDate.getMinutes();
+                                                                               
+                                                                               
this.setAttribute("y",Math.round(heightInMinutes*startMin));
+                                                                               
this.setAttribute("height",Math.round((endMin - startMin)*heightInMinutes));
+                                                                               
+                                                                               
if ($debug) Debug.write("y,height -- ",this.y,this.height);
+                                                                       ]]>
+                                                               </handler>
+                                                               
+                                                               <handler 
name="onmousedown">
+                                                                       
this.mouseUpDetect = false;
+                                                                       
this.startedToDrag = false;
+                                                                       
this.rememberX = this.getMouse("x");
+                                                                       
this.rememberY = this.getMouse("y");
+                                                                       
lz.Timer.addTimer( new LzDelegate( this, "checkIfDragging" ), 250 );
+                                                               </handler>
+                                                               
+                                                               <handler 
name="onmouseup" >
+                                                                       
<![CDATA[
+                                                                               
if (this.rememberX == this.getMouse("x")
+                                                                               
                && this.rememberY == this.getMouse("y")) {
+                                                                               
        this.mouseUpDetect = true;
+                                                                               
        var appointmentId = this.datapath.xpathQuery('appointmentId/text()');
+                                                                               
        if ($debug) Debug.write("click ",appointmentId);
+                                                                               
        classroot.parent.selectCalendarEvent(this);
+                                                                               
}
+                                                                       ]]>
+                                                               </handler>
+                                                               
+                                                               <method 
name="closeDragItem">
+                                                                       
lz.Track.deactivate(classroot.dayViewTrackGroup);
+                                                                       
classroot.currentDragEvent = null;
+                                                                       
+                                                                       if 
(classroot.currentOverTrackView != parent) {
+                                                                               
var appointmentId = this.datapath.xpathQuery('appointmentId/text()');
+                                                                               
if ($debug) Debug.write("Move to new Date appointmentId ",appointmentId);
+                                                                       } else {
+                                                                               
if ($debug) Debug.write("Move to same Date");
+                                                                       }
+                                                                       
+                                                                       
this.setAttribute("visibility","visible");      
+                                                               </method>
+                                                               
+                                                               <method 
name="checkIfDragging" args="tRef">
+                                                                       
<![CDATA[
+                                                                               
if (this.mouseUpDetect) {
+                                                                               
        return;
+                                                                               
}
+                                                                               
if (this.rememberX == this.getMouse("x")
+                                                                               
                        && this.rememberY == this.getMouse("y")) {
+                                                                               
        lz.Timer.addTimer( new LzDelegate( this, "checkIfDragging" ), 250 );    
                
+                                                                               
} else {
+                                                                               
        this.startedToDrag = true;
+                                                                               
        var startx = canvas.getMouse("x")-(this.width/2);
+                                                                               
        var starty = canvas.getMouse("y")-(this.height/2);
+                                                                               
        classroot.currentDragEvent = new lz.dragEvent(canvas,{
+                                                                               
                                x:startx,
+                                                                               
                                startx:startx,
+                                                                               
                                y:starty,
+                                                                               
                                starty:starty,
+                                                                               
                                bgcolor:this.bgcolor,
+                                                                               
                                height:this.height,
+                                                                               
                                width:this.width,
+                                                                               
                                eventRef:this,
+                                                                               
                                showTime:false,
+                                                                               
                                titleText:this._title.text                      
                                                                
+                                                                               
                        });
+                                                                               
                        
+                                                                               
        lz.Track.activate(classroot.dayViewTrackGroup);
+                                                                               
        this.setAttribute("visibility","hidden");       
+                                                                               
}
+                                                                       ]]>
+                                                               </method>
+                                                               
+                                                               <text 
name="_title" x="2" datapath="title" text="$path{ 'text()' }" />
+                                                       </view>
+                                               </view>
+                                               
+                                       </view>
+                                       
+                                       <simplelayout axis="x" spacing="0" />
+                                       
+                               </view>
+                               
+                               <om_vscrollbar />
+                               
+                       </view>
+                       
+               </view>
+               
+       </class>
+       
+</library>
\ No newline at end of file

Added: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/lzMonthView.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/lzMonthView.lzx?rev=1304555&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/lzMonthView.lzx
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/layouts/lzMonthView.lzx
 Fri Mar 23 18:42:10 2012
@@ -0,0 +1,216 @@
+<?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>
+
+       <class name="lzMonthView" extends="view" width="${ parent.width }" 
height="${ parent.height }">
+               
+               <!--
+                       Name of the trackgroup
+                -->
+               <attribute name="monthViewTrackGroup" 
value="monthViewTrackGroup" type="string" />
+               
+               <!-- 
+                       Current Dragging object
+                -->
+               <attribute name="currentDragEvent" value="null" />
+               
+               <!-- 
+                       Current dayDate that receives the track scroll over
+                -->
+               <attribute name="currentOverTrackView" value="null" />
+                       
+               <view datapath="getAppointmentsByWeekCalendarResponse/return" 
+                               width="${ parent.width }" height="${ 
Math.round( parent.height/6 ) }" >
+               
+                       <!-- The months -->
+       
+                       <!-- The days -->
+                       <view name="days" datapath="days" width="${ Math.round( 
parent.width/7 ) }" clip="true"
+                                               height="${ parent.height }" 
bgcolor="0xDDDDDD" >
+                       
+                               <attribute name="dayDate" value="null" />
+                               
+                               <handler name="oninit">
+                                       lz.Track.register(this, 
parent.parent.monthViewTrackGroup);
+                               </handler>
+                               
+                               <handler name="onmousetrackover">
+                               this._content.setAttribute('bgcolor', 0xFF3300);
+                               parent.parent.currentOverTrackView = this;
+                           </handler>
+                       
+                           <handler name="onmousetrackout">
+                               this._content.setAttribute('bgcolor', 0xFFFFFF);
+                               parent.parent.currentOverTrackView = null;
+                           </handler>
+                           
+                           <handler name="onmousetrackup">
+                               this._content.setAttribute('bgcolor', 0xFFFFFF);
+                           </handler>
+                               
+                               <handler name="ondata" args="d">
+                                       if(d is lz.DataNodeMixin){
+                                               var lzDataPointer = new 
lz.datapointer();
+                                               lzDataPointer.setPointer(d);
+                                               var xmlDate = 
lzDataPointer.xpathQuery('tDate/text()');
+                                               var splitDate = 
xmlDate.split("-");
+                                               this.dayDate = new 
Date(splitDate[0], Number(splitDate[1])-1, splitDate[2]);
+                                               this.renderView();
+                                       }
+                               </handler>
+                               
+                               <method name="renderView">
+                                       var tDay = this.dayDate.getDate();
+                                       var tMonth = this.dayDate.getMonth();
+                                       if 
(parent.parent.parent.isCurrentMonth(tMonth)) {
+                                               
this._content._title.setAttribute("fgcolor",0x000000);
+                                               if (tDay == 1) {
+                                                       tDay = tDay + "." + 
canvas.monthnames[this.dayDate.getMonth()];
+                                               }
+                                       } else {
+                                               
this._content._title.setAttribute("fgcolor",0xBBBBBB);
+                                       }
+                                       
this._content._title.setAttribute("text",tDay);
+                               </method>
+                               
+                               <view name="_content" width="${ parent.width -1 
}" bgcolor="0xFFFFFF"
+                                                               height="${ 
parent.height -1 }" clickable="true" showhandcursor="false">
+                                       
+                                       <handler name="onclick">
+                                               
parent.parent.parent.parent.onNewEventDate.sendEvent(parent.dayDate);
+                                       </handler>
+                                       
+                                       <handler name="onmouseover">
+                                               
this.setAttribute("bgcolor",0xE0E0E0);
+                                       </handler>
+                                       
+                                       <handler name="onmouseout">
+                                               
this.setAttribute("bgcolor",0xFFFFFF);
+                                       </handler>
+                                                       
+                                       <text name="_title">
+                                               <handler name="onmouseover">
+                                                       
this.setAttribute("fontstyle","bold");
+                                               </handler>
+                                               <handler name="onmouseout">
+                                                       
this.setAttribute("fontstyle","plain");
+                                               </handler>
+                                               <handler name="onclick">
+                                                       
parent.parent.parent.parent.parent.onSelectDate.sendEvent(parent.parent.dayDate);
+                                               </handler>
+                                       </text>
+                               
+                                       <view width="${ parent.width }" y="18">
+                                               <view datapath="appointments" 
bgcolor="0xA59CFC" width="${ parent.width }">
+                                               
+                                                       <attribute 
name="rememberX" value="-1" />
+                                                       <attribute 
name="rememberY" value="-1" />
+                                                       <attribute 
name="mouseUpDetect" value="false" type="boolean"/>
+                                                       <attribute 
name="startedToDrag" value="false" type="boolean"/>
+                                                       <handler 
name="onmousedown">
+                                                               
this.mouseUpDetect = false;
+                                                               
this.startedToDrag = false;
+                                                               this.rememberX 
= this.getMouse("x");
+                                                               this.rememberY 
= this.getMouse("y");
+                                                               
lz.Timer.addTimer( new LzDelegate( this, "checkIfDragging" ), 250 );
+                                                       </handler>
+                                                       <handler 
name="onmouseup" >
+                                                               <![CDATA[
+                                                                       if 
(this.rememberX == this.getMouse("x")
+                                                                               
        && this.rememberY == this.getMouse("y")) {
+                                                                               
this.mouseUpDetect = true;
+                                                                               
var appointmentId = this.datapath.xpathQuery('appointmentId/text()');
+                                                                               
if ($debug) Debug.write("click ",appointmentId);
+                                                                               
parent.parent.parent.parent.parent.parent.selectCalendarEvent(this);
+                                                                               
//this.setAttribute("text",parseTimeStringFromXmlString(d.childNodes[0].data));
+                                                                       }
+                                                               ]]>
+                                                       </handler>
+                                                       
+                                                       <method 
name="closeDragItem">
+                                                               
lz.Track.deactivate(parent.parent.parent.parent.parent.monthViewTrackGroup);
+                                                               
parent.parent.parent.parent.parent.currentDragEvent = null;
+                                                               
+                                                               if 
(parent.parent.parent.parent.parent.currentOverTrackView != 
parent.parent.parent) {
+                                                                       var 
appointmentId = this.datapath.xpathQuery('appointmentId/text()');
+                                                                       if 
($debug) Debug.write("Move to new Date appointmentId ",appointmentId);
+                                                               } else {
+                                                                       if 
($debug) Debug.write("Move to same Date");
+                                                               }
+                                                               
+                                                               
this.setAttribute("visibility","visible");      
+                                                       </method>
+                                                       
+                                                       <method 
name="checkIfDragging" args="tRef">
+                                                               <![CDATA[
+                                                                       if 
(this.mouseUpDetect) {
+                                                                               
return;
+                                                                       }
+                                                                       if 
(this.rememberX == this.getMouse("x")
+                                                                               
                && this.rememberY == this.getMouse("y")) {
+                                                                               
lz.Timer.addTimer( new LzDelegate( this, "checkIfDragging" ), 250 );            
        
+                                                                       } else {
+                                                                               
this.startedToDrag = true;
+                                                                               
var startx = canvas.getMouse("x")-(this.width/2);
+                                                                               
var starty = canvas.getMouse("y")-(this.height/2);
+                                                                               
parent.parent.parent.parent.parent.currentDragEvent = new lz.dragEvent(canvas,{
+                                                                               
                        x:startx,
+                                                                               
                        startx:startx,
+                                                                               
                        y:starty,
+                                                                               
                        starty:starty,
+                                                                               
                        bgcolor:this.bgcolor,
+                                                                               
                        height:18,
+                                                                               
                        width:this.width,
+                                                                               
                        eventRef:this,
+                                                                               
                        timeText:this._time.text,
+                                                                               
                        titleText:this._title.text                              
                                                        
+                                                                               
                });
+                                                                               
                
+                                                                               
lz.Track.activate(parent.parent.parent.parent.parent.monthViewTrackGroup);
+                                                                               
this.setAttribute("visibility","hidden");       
+                                                                       }
+                                                               ]]>
+                                                       </method>
+                                                       
+                                                       <text name="_time" 
datapath="start" >
+                                                               <handler 
name="ondata" args="d">
+                                                                       
this.setAttribute("text",parseTimeStringFromXmlString(d.childNodes[0].data));
+                                                               </handler>
+                                                       </text>
+                                                       <text name="_title" 
x="36" datapath="title" text="$path{ 'text()' }" />
+                                                       
+                                               </view>
+                                               <simplelayout axis="y" 
spacing="1" />
+                                       </view>
+                                       
+                               </view>
+                       
+                       </view>
+                       
+               <simplelayout axis="x" spacing="0" />
+               </view>
+               
+               <simplelayout axis="y" spacing="0" />
+       
+       </class>
+       
+</library>
+       
\ No newline at end of file

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/library.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/library.lzx?rev=1304555&r1=1304554&r2=1304555&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/library.lzx
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/library.lzx
 Fri Mar 23 18:42:10 2012
@@ -30,6 +30,7 @@
        <resource name="calendar_resultset_next_rsc" 
src="resources/resultset_next.png" />
        <resource name="calendar_resultset_previous_rsc" 
src="resources/resultset_previous.png" />
 
+       <include href="layouts/" />
        <include href="addAttendee.lzx" />
        <include href="lzCalGridTempDrawView.lzx" />
        <include href="addExternalAttendee.lzx" />

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzCalendarGrid.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzCalendarGrid.lzx?rev=1304555&r1=1304554&r2=1304555&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzCalendarGrid.lzx
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/compontents/lzCalendarGrid.lzx
 Fri Mar 23 18:42:10 2012
@@ -20,6 +20,10 @@
 -->
 <library>
 
+       <!---
+               Create the visual output for the viewstates: days, months, 
weeks 
+               and navigation between the viewstates
+        -->
        <class name="lzCalendarGrid" extends="view" x="204" y="26" 
bgcolor="0xFFFFFF"
                                        width="${ parent.width - 204 }" 
height="${ parent.height-26 }" >
                
@@ -28,16 +32,38 @@
                <attribute name="currentDay" value="0" type="number" />
                <attribute name="viewType" value="month" type="string" />
                
+               <!---
+                       Prevent from re-rendering when switching the viewState 
+                -->
                <attribute name="reRenderLock" value="false" type="boolean" />
                
+               <!---
+                       A reference to the current selected calendar event view
+                -->
                <attribute name="calendarEvent" value="null" />
                
+               <!---
+                       Thrown whenever the user scrolls the day or week view
+                -->
                <event name="onScollContent" />
                
+               <!---
+                       Thrown when the user clicks on the date header in week 
or on the 
+                       date text in the week view
+                -->
                <event name="onSelectDate" />
                
+               <!---
+                       Thrown when the user clicks in the empty space in a 
date in the month view
+                -->
                <event name="onNewEventDate" />
                
+               <!---
+                       Thrown when the user selects a date in the day or week 
view
+                       in this event the user chooses two dates as he 
+                       can drag an area in the calendar
+                       start and end can be found in: tStartDate,tEndDate
+                -->
                <event name="onStartEndDate" />
                
                <attribute name="tStartDate" value="null" />
@@ -78,20 +104,20 @@
                
                <method name="showDay">
                        if ($debug) Debug.write("Show Day 
",this.currentDay,this.currentWeek);
-                       this.reRenderLock = false;
+                       this.setAttribute("reRenderLock",false);
                        this.setAttribute("viewType","day");
                </method>
                
                <method name="showWeek">
-                       this.reRenderLock = true;
+                       this.setAttribute("reRenderLock",true);
                        this.setAttribute("viewType","week");
-                       this.reRenderLock = false;
+                       this.setAttribute("reRenderLock",false);
                </method>
                
                <method name="showMonth">
-                       this.reRenderLock = true;
+                       this.setAttribute("reRenderLock",true);
                        this.setAttribute("viewType","month");
-                       this.reRenderLock = false;
+                       this.setAttribute("reRenderLock",false);
                </method>
                
                <method name="selectCalendarEvent" args="tRef">
@@ -101,475 +127,30 @@
                
                <state name="day" applied="${ classroot.viewType == 'day' }">
                
-                       <view width="${ parent.width }" height="${ 
parent.height }">
-                       
+                       <lzDayView currentDay="${ classroot.currentDay }">
                                <handler name="oninit">
                                        
this.setAttribute("datapath","getAppointmentsByWeekCalendarResponse/return["+classroot.currentWeek+"]");
                                </handler>
-                               
-                               <view x="41" width="${ parent.width-10 }" 
height="20" bgcolor="0xDDDDDD">
-                                       <view name="days" width="${ 
(parent.width-41) }" clip="true"
-                                                                               
bgcolor="0xDDDDDD" height="19">
-                                               
-                                               <handler name="oninit">
-                                                       
this.setAttribute("datapath","days["+classroot.currentDay+"]");
-                                               </handler>
-                                                                               
-                                               <text name="_title" width="${ 
parent.width -1 }" fgcolor="0x666666"
-                                                                               
datapath="tDate" bgcolor="0xFFFFFF" height="19" >
-                                                       <handler name="ondata" 
args="d">
-                                                               var tDate = 
parseDateOnlyFromXmlString(d.childNodes[0].data);
-                                                               
this.setAttribute("text",canvas.dayShortNames[tDate.getDay()]+" 
"+tDate.getDate()+"."+(tDate.getMonth()+1));
-                                                       </handler>
-                                               </text>
-                                               
-                                       </view>
-                                       <simplelayout axis="x" spacing="0" />
-                               </view>
-                               
-                               <view y="20" width="${ parent.width }" 
height="${ parent.height-20 }">
-                       
-                                       <view width="${ parent.width }" 
height="${ parent.height }" clip="true" bgcolor="0xDDDDDD">
-                               
-                                               <view width="${ parent.width-10 
}" height="721" >
-                                               
-                                                       <handler name="oninit">
-                                                               
this.setAttribute("y",parent.height-721);
-                                                       </handler>
-                                                       
-                                                       <handler name="ony" 
args="y">
-                                                               
parent.parent.parent.parent.onScollContent.sendEvent(null);
-                                                       </handler>
-                                               
-                                                       <view name="hours" 
width="40" height="720" >
-                                                                       
-                                                               <view 
name="dayBg2" resource="calendar_day_hours_index_bg_rsc" />
-                                                               
-                                                               <view>
-                                                                       
<handler name="oninit">
-                                                                               
<![CDATA[
-                                                                               
        for (var i=0;i<24;i++) {
-                                                                               
                if (i<10) {
-                                                                               
                        new lz.textHourHelper(this,{text:"0"+i+":00"});
-                                                                               
                } else {
-                                                                               
                        new lz.textHourHelper(this,{text:i+":00"});
-                                                                               
                }
-                                                                               
        }
-                                                                               
]]>
-                                                                       
</handler>
-                                                                       
<simplelayout axis="y" />
-                                                               </view>
-                                                                       
-                                                       </view>
-                                                       
-                                                       <view width="1" />
-                                                       
-                                                       <!-- The days -->
-                                                       <view name="days" 
width="${ (parent.width-41) }" 
-                                                                               
height="720" bgcolor="0xDDDDDD" >
-                                                       
-                                                               <handler 
name="oninit">
-                                                                       
this.setAttribute("datapath","days["+classroot.currentDay+"]");
-                                                               </handler>
-                                                               <attribute 
name="dayDate" value="null" />
-                                                               
-                                                               <attribute 
name="viewType" value="${ classroot.viewType }" type="string" />
-                                                       
-                                                               <handler 
name="ondata" args="d">
-                                                                       if(d is 
lz.DataNodeMixin){
-                                                                               
var lzDataPointer = new lz.datapointer();
-                                                                               
lzDataPointer.setPointer(d);
-                                                                               
var xmlDate = lzDataPointer.xpathQuery('tDate/text()');
-                                                                               
var splitDate = xmlDate.split("-");
-                                                                               
this.dayDate = new Date(splitDate[0], Number(splitDate[1])-1, splitDate[2]);
-                                                                       }
-                                                               </handler>
-                                                               
-                                                               <view 
name="_content" width="${ parent.width -1 }" bgcolor="0xFFFFFF"
-                                                                               
                height="720" clickable="true" showhandcursor="false">
-                                                                               
                
-                                                                       
<attribute name="lzCalGridTempDrawView" value="null" />
-                                                                       
-                                                                       
<handler name="onmousedown">
-                                                                               
<![CDATA[
-                                                                               
        var heightInMinutes = this.height/1440;
-                                                                               
        //round by 30 minutes
-                                                                               
        var tPixels30Minutes = heightInMinutes*30;
-                                                                               
        var tStarty = this.getMouse("y");
-                                                                               
        tStarty = Math.round(tStarty/tPixels30Minutes)*tPixels30Minutes;
-                                                                               
        this.lzCalGridTempDrawView = new lz.lzCalGridTempDrawView(this,{
-                                                                               
                                                                                
        y:tStarty,
-                                                                               
                                                                                
        starty:tStarty,
-                                                                               
                                                                                
        height:tPixels30Minutes,
-                                                                               
                                                                                
        heightInMinutes:heightInMinutes,
-                                                                               
                                                                                
        tPixels30Minutes:tPixels30Minutes
-                                                                               
                                                                                
});
-                                                                               
]]>                                                             
-                                                                       
</handler>
-                                                                       
-                                                                       
<handler name="onmouseup">
-                                                                               
if (this.lzCalGridTempDrawView != null) {
-                                                                               
        var tStartDate = new Date();
-                                                                               
        //clone Date to have day and month
-                                                                               
        tStartDate.setTime(parent.dayDate.getTime());
-                                                                               
        var startMinutesTotal = 
this.lzCalGridTempDrawView.getStartMinutesTotal();
-                                                                               
        tStartDate.setHours(Math.floor(startMinutesTotal/60));
-                                                                               
        tStartDate.setMinutes(startMinutesTotal-(tStartDate.getHours()*60));
-                                                                               
        
-                                                                               
        var tEndDate = new Date();
-                                                                               
        //clone Date to have day and month
-                                                                               
        tEndDate.setTime(parent.dayDate.getTime());
-                                                                               
        var endMinutesTotal = this.lzCalGridTempDrawView.getEndMinutesTotal();
-                                                                               
        tEndDate.setHours(Math.floor(endMinutesTotal/60));
-                                                                               
        tEndDate.setMinutes(endMinutesTotal-(tEndDate.getHours()*60));
-                                                                               
-                                                                               
        this.lzCalGridTempDrawView.destroy();
-                                                                               
        this.lzCalGridTempDrawView = null;
-                                                                               
        
-                                                                               
        
parent.parent.parent.parent.parent.parent.selectStartEndDateTime(tStartDate,tEndDate);
-                                                                               
}
-                                                                       
</handler>
-                                                                       
-                                                                       <view 
name="dayBg2" resource="calendar_one_day_hours_index_bg_rsc" stretches="width" 
-                                                                               
width="${ parent.width }"  ></view>
-                                                                               
                
-                                                                       <view 
datapath="appointments" bgcolor="0xA59CFC" width="${ parent.width }" 
height="60">
-                                                                               
<handler name="ondata" args="d">
-                                                                               
        <![CDATA[
-                                                                               
                if (classroot.reRenderLock) {
-                                                                               
                        return;
-                                                                               
                }
-                                                                               
                var dataPointer = new lz.datapointer();
-                                                                               
                dataPointer.setPointer(d);
-                                                                               
                var startDate = 
parseDateTimeFromXmlString(dataPointer.xpathQuery('start/text()'));
-                                                                               
                var endDate = 
parseDateTimeFromXmlString(dataPointer.xpathQuery('end/text()'));
-                                                                               
                
-                                                                               
                if ($debug) Debug.write("COMPARE -- ",startDate,endDate);
-                                                                               
                
-                                                                               
                var heightInMinutes = parent.height/1440;
-                                                                               
                var startMin = (startDate.getHours() * 60 ) + 
startDate.getMinutes();
-                                                                               
                var endMin = (endDate.getHours() * 60 ) + endDate.getMinutes();
-                                                                               
                
-                                                                               
                this.setAttribute("y",Math.round(heightInMinutes*startMin));
-                                                                               
                this.setAttribute("height",Math.round((endMin - 
startMin)*heightInMinutes));
-                                                                               
                
-                                                                               
                if ($debug) Debug.write("y,height -- ",this.y,this.height);
-                                                                               
        ]]>
-                                                                               
</handler>
-                                                                               
<handler name="onclick" >
-                                                                               
        var appointmentId = this.datapath.xpathQuery('appointmentId/text()');
-                                                                               
        if ($debug) Debug.write("click ",appointmentId);
-                                                                               
        
parent.parent.parent.parent.parent.parent.parent.selectCalendarEvent(this);
-                                                                               
        
//this.setAttribute("text",parseTimeStringFromXmlString(d.childNodes[0].data));
-                                                                               
</handler>
-                                                                               
<text name="_title" x="2" datapath="title" text="$path{ 'text()' }" />
-                                                                       </view>
-                                                               </view>
-                                                               
-                                                       </view>
-                                                       
-                                                       <simplelayout axis="x" 
spacing="0" />
-                                                       
-                                               </view>
-                                               
-                                               <om_vscrollbar />
-                                               
-                                       </view>
-                                       
-                               </view>
-                               
-                       </view>
-               
+                       </lzDayView>
                        
                </state>
                
                <state name="week" applied="${ classroot.viewType == 'week' }">
                
-                       <view width="${ parent.width }" height="${ 
parent.height }">
-                       
+                       <!-- A week view is nothing else then 7 days next to 
each other -->
+                       <lzDayView currentDay="${ classroot.currentDay }" 
singleDayView="false" daysPerWeek="7"
+                                               reRenderLock="${ 
classroot.reRenderLock }">
                                <handler name="oninit">
                                        
this.setAttribute("datapath","getAppointmentsByWeekCalendarResponse/return["+classroot.currentWeek+"]");
                                </handler>
-                       
-                               <view x="41" width="${ parent.width-10 }" 
height="20" bgcolor="0xDDDDDD">
-                                       <view name="days" datapath="days" 
width="${ (parent.width-41)/7 }" clip="true"
-                                                                               
bgcolor="0xDDDDDD" height="19">
-                                                                               
-                                               <text name="_title" width="${ 
parent.width -1 }" fgcolor="0x666666"
-                                                                               
datapath="tDate" bgcolor="0xFFFFFF" height="19" >
-                                                       <attribute name="tDate" 
value="null" />
-                                                       <handler name="ondata" 
args="d">
-                                                               this.tDate = 
parseDateOnlyFromXmlString(d.childNodes[0].data);
-                                                               var 
tStringWeekDay = canvas.dayShortNames[tDate.getDay()];
-                                                               if ($debug) 
Debug.write("Calc Week day ",tStringWeekDay,this.tDate.getDay(),this.tDate);
-                                                               
this.setAttribute("text",canvas.dayShortNames[this.tDate.getDay()]+" 
"+this.tDate.getDate()+"."+(this.tDate.getMonth()+1)+".");
-                                                       </handler>
-                                                       <handler 
name="onmouseover">
-                                                               
this.setAttribute("fontstyle","bold");
-                                                       </handler>
-                                                       <handler 
name="onmouseout">
-                                                               
this.setAttribute("fontstyle","plain");
-                                                       </handler>
-                                                       <handler name="onclick">
-                                                               
parent.parent.parent.parent.onSelectDate.sendEvent(this.tDate);
-                                                       </handler>
-                                               </text>
-                                               
-                                       </view>
-                                       <simplelayout axis="x" spacing="0" />
-                               </view>
-                               
-                               <view y="20" width="${ parent.width }" 
height="${ parent.height-20 }">
-                       
-                                       <view width="${ parent.width }" 
height="${ parent.height }" clip="true" bgcolor="0xDDDDDD">
-                               
-                                               <view width="${ parent.width-10 
}" height="721" >
-                                               
-                                                       <handler name="oninit">
-                                                               
this.setAttribute("y",parent.height-this.height);
-                                                       </handler>
-                                                       
-                                                       <handler name="ony" 
args="y">
-                                                               
parent.parent.parent.parent.onScollContent.sendEvent(null);
-                                                       </handler>
-                                               
-                                                       <view name="hours" 
width="40" height="720" >
-                                                                       
-                                                               <view 
name="dayBg2" resource="calendar_day_hours_index_bg_rsc" />
-                                                               
-                                                               <view>
-                                                                       
<handler name="oninit">
-                                                                               
<![CDATA[
-                                                                               
        for (var i=0;i<24;i++) {
-                                                                               
                if (i<10) {
-                                                                               
                        new lz.textHourHelper(this,{text:"0"+i+":00"});
-                                                                               
                } else {
-                                                                               
                        new lz.textHourHelper(this,{text:i+":00"});
-                                                                               
                }
-                                                                               
        }
-                                                                               
]]>
-                                                                       
</handler>
-                                                                       
<simplelayout axis="y" />
-                                                               </view>
-                                                                       
-                                                       </view>
-                                                       
-                                                       <view width="1" />
-                                                       
-                                                       <!-- The days -->
-                                                       <view name="days" 
datapath="days" width="${ (parent.width-41)/7 }" 
-                                                                               
height="720" bgcolor="0xDDDDDD" >
-                                                       
-                                                               <attribute 
name="dayDate" value="null" />
-                                                               
-                                                               <attribute 
name="viewType" value="${ classroot.viewType }" type="string" />
-                                                       
-                                                               <handler 
name="ondata" args="d">
-                                                                       if(d is 
lz.DataNodeMixin){
-                                                                               
var lzDataPointer = new lz.datapointer();
-                                                                               
lzDataPointer.setPointer(d);
-                                                                               
var xmlDate = lzDataPointer.xpathQuery('tDate/text()');
-                                                                               
var splitDate = xmlDate.split("-");
-                                                                               
this.dayDate = new Date(splitDate[0], Number(splitDate[1])-1, splitDate[2]);
-                                                                       }
-                                                               </handler>
-                                                               
-                                                               <view 
name="_content" width="${ parent.width -1 }" bgcolor="0xFFFFFF"
-                                                                               
                height="720" clickable="true" showhandcursor="false">
-                                                                               
                
-                                                                       
<attribute name="lzCalGridTempDrawView" value="null" />
-                                                                       
-                                                                       
<handler name="onmousedown">
-                                                                               
<![CDATA[
-                                                                               
        var heightInMinutes = this.height/1440;
-                                                                               
        //round by 30 minutes
-                                                                               
        var tPixels30Minutes = heightInMinutes*30;
-                                                                               
        var tStarty = this.getMouse("y");
-                                                                               
        tStarty = Math.round(tStarty/tPixels30Minutes)*tPixels30Minutes;
-                                                                               
        this.lzCalGridTempDrawView = new lz.lzCalGridTempDrawView(this,{
-                                                                               
                                                                                
        y:tStarty,
-                                                                               
                                                                                
        starty:tStarty,
-                                                                               
                                                                                
        height:tPixels30Minutes,
-                                                                               
                                                                                
        heightInMinutes:heightInMinutes,
-                                                                               
                                                                                
        tPixels30Minutes:tPixels30Minutes
-                                                                               
                                                                                
});
-                                                                               
]]>                                                             
-                                                                       
</handler>
-                                                                       
-                                                                       
<handler name="onmouseup">
-                                                                               
if (this.lzCalGridTempDrawView != null) {
-                                                                               
        var tStartDate = new Date();
-                                                                               
        //clone Date to have day and month
-                                                                               
        tStartDate.setTime(parent.dayDate.getTime());
-                                                                               
        var startMinutesTotal = 
this.lzCalGridTempDrawView.getStartMinutesTotal();
-                                                                               
        tStartDate.setHours(Math.floor(startMinutesTotal/60));
-                                                                               
        tStartDate.setMinutes(startMinutesTotal-(tStartDate.getHours()*60));
-                                                                               
        
-                                                                               
        var tEndDate = new Date();
-                                                                               
        //clone Date to have day and month
-                                                                               
        tEndDate.setTime(parent.dayDate.getTime());
-                                                                               
        var endMinutesTotal = this.lzCalGridTempDrawView.getEndMinutesTotal();
-                                                                               
        tEndDate.setHours(Math.floor(endMinutesTotal/60));
-                                                                               
        tEndDate.setMinutes(endMinutesTotal-(tEndDate.getHours()*60));
-                                                                               
-                                                                               
        this.lzCalGridTempDrawView.destroy();
-                                                                               
        this.lzCalGridTempDrawView = null;
-                                                                               
        
-                                                                               
        
parent.parent.parent.parent.parent.parent.selectStartEndDateTime(tStartDate,tEndDate);
-                                                                               
}
-                                                                       
</handler>
-                                                                       
-                                                                       <view 
name="dayBg2" resource="calendar_day_bg_rsc" stretches="width" 
-                                                                               
width="${ parent.width }"  ></view>
-                                                                               
                
-                                                                       <view 
datapath="appointments" bgcolor="0xA59CFC" width="${ parent.width }" 
height="60">
-                                                                               
<handler name="ondata" args="d">
-                                                                               
        <![CDATA[
-                                                                               
                if (classroot.reRenderLock) {
-                                                                               
                        return;
-                                                                               
                }
-                                                                               
                var dataPointer = new lz.datapointer();
-                                                                               
                dataPointer.setPointer(d);
-                                                                               
                var startDate = 
parseDateTimeFromXmlString(dataPointer.xpathQuery('start/text()'));
-                                                                               
                var endDate = 
parseDateTimeFromXmlString(dataPointer.xpathQuery('end/text()'));
-                                                                               
                
-                                                                               
                if ($debug) Debug.write("COMPARE -- ",startDate,endDate);
-                                                                               
                
-                                                                               
                var heightInMinutes = parent.height/1440;
-                                                                               
                var startMin = (startDate.getHours() * 60 ) + 
startDate.getMinutes();
-                                                                               
                var endMin = (endDate.getHours() * 60 ) + endDate.getMinutes();
-                                                                               
                
-                                                                               
                this.setAttribute("y",Math.round(heightInMinutes*startMin));
-                                                                               
                this.setAttribute("height",Math.round((endMin - 
startMin)*heightInMinutes));
-                                                                               
                
-                                                                               
                if ($debug) Debug.write("y,height -- ",this.y,this.height);
-                                                                               
        ]]>
-                                                                               
</handler>
-                                                                               
<handler name="onclick" >
-                                                                               
        var appointmentId = this.datapath.xpathQuery('appointmentId/text()');
-                                                                               
        if ($debug) Debug.write("click ",appointmentId);
-                                                                               
        
parent.parent.parent.parent.parent.parent.parent.selectCalendarEvent(this);
-                                                                               
        
//this.setAttribute("text",parseTimeStringFromXmlString(d.childNodes[0].data));
-                                                                               
</handler>
-                                                                               
<text name="_title" x="2" datapath="title" text="$path{ 'text()' }" />
-                                                                       </view>
-                                                               </view>
-                                                               
-                                                       </view>
-                                                       
-                                                       <simplelayout axis="x" 
spacing="0" />
-                                                       
-                                               </view>
-                                               
-                                               <om_vscrollbar />
-                                               
-                                       </view>
-                               
-                               </view>
-                               
-                       </view> 
+                       </lzDayView>
                        
                </state>
                
                <state name="month" applied="${ classroot.viewType == 'month' 
}">
                
-                       <view width="${ parent.width }" height="${ 
parent.height }">
-                       
-                               <view 
datapath="getAppointmentsByWeekCalendarResponse/return" 
-                                               width="${ parent.width }" 
height="${ Math.round( parent.height/6 ) }" >
-                               
-                                       <!-- The months -->
+                       <lzMonthView />
                        
-                                       <!-- The days -->
-                                       <view name="days" datapath="days" 
width="${ Math.round( parent.width/7 ) }" clip="true"
-                                                               height="${ 
parent.height }" bgcolor="0xDDDDDD" >
-                                       
-                                               <attribute name="dayDate" 
value="null" />
-                                               
-                                               <attribute name="viewType" 
value="${ classroot.viewType }" type="string" />
-                                       
-                                               <handler name="ondata" args="d">
-                                                       if(d is 
lz.DataNodeMixin){
-                                                               var 
lzDataPointer = new lz.datapointer();
-                                                               
lzDataPointer.setPointer(d);
-                                                               var xmlDate = 
lzDataPointer.xpathQuery('tDate/text()');
-                                                               var splitDate = 
xmlDate.split("-");
-                                                               this.dayDate = 
new Date(splitDate[0], Number(splitDate[1])-1, splitDate[2]);
-                                                               
this.renderView();
-                                                       }
-                                               </handler>
-                                               
-                                               <method name="renderView">
-                                                       var tDay = 
this.dayDate.getDate();
-                                                       var tMonth = 
this.dayDate.getMonth();
-                                                       if 
(parent.parent.parent.isCurrentMonth(tMonth)) {
-                                                               
this._content._title.setAttribute("fgcolor",0x000000);
-                                                               if (tDay == 1) {
-                                                                       tDay = 
tDay + "." + canvas.monthnames[this.dayDate.getMonth()];
-                                                               }
-                                                       } else {
-                                                               
this._content._title.setAttribute("fgcolor",0xBBBBBB);
-                                                       }
-                                                       
this._content._title.setAttribute("text",tDay);
-                                               </method>
-                                               
-                                               <view name="_content" width="${ 
parent.width -1 }" bgcolor="0xFFFFFF"
-                                                                               
height="${ parent.height -1 }" clickable="true" showhandcursor="false">
-                                                       
-                                                       <handler name="onclick">
-                                                               
lz.Cursor.restoreCursor();
-                                                               
parent.parent.parent.parent.onNewEventDate.sendEvent(parent.dayDate);
-                                                       </handler>
-                                                       
-                                                       <handler 
name="onmouseover">
-                                                               
lz.Cursor.setCursorGlobal("edit_add_rsc");
-                                                       </handler>
-                                                       
-                                                       <handler 
name="onmouseout">
-                                                               
lz.Cursor.restoreCursor();
-                                                       </handler>
-                                                                       
-                                                       <text name="_title">
-                                                               <handler 
name="onmouseover">
-                                                                       
this.setAttribute("fontstyle","bold");
-                                                               </handler>
-                                                               <handler 
name="onmouseout">
-                                                                       
this.setAttribute("fontstyle","plain");
-                                                               </handler>
-                                                               <handler 
name="onclick">
-                                                                       
parent.parent.parent.parent.parent.onSelectDate.sendEvent(parent.parent.dayDate);
-                                                               </handler>
-                                                       </text>
-                                               
-                                                       <view width="${ 
parent.width }" y="18">
-                                                               <view 
datapath="appointments" bgcolor="0xA59CFC" width="${ parent.width }">
-                                                                       
<handler name="onclick" >
-                                                                               
var appointmentId = this.datapath.xpathQuery('appointmentId/text()');
-                                                                               
if ($debug) Debug.write("click ",appointmentId);
-                                                                               
parent.parent.parent.parent.parent.parent.selectCalendarEvent(this);
-                                                                               
//this.setAttribute("text",parseTimeStringFromXmlString(d.childNodes[0].data));
-                                                                       
</handler>
-                                                                       <text 
name="_time" datapath="start" >
-                                                                               
<handler name="ondata" args="d">
-                                                                               
        
this.setAttribute("text",parseTimeStringFromXmlString(d.childNodes[0].data));
-                                                                               
</handler>
-                                                                       </text>
-                                                                       <text 
name="_title" x="36" datapath="title" text="$path{ 'text()' }" />
-                                                               </view>
-                                                               <simplelayout 
axis="y" spacing="1" />
-                                                       </view>
-                                                       
-                                               </view>
-                                       
-                                       </view>
-                                       
-                               <simplelayout axis="x" spacing="0" />
-                               </view>
-                               
-                               <simplelayout axis="y" spacing="0" />
-                       
-                       </view>
-               
                </state>
                
        </class>

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/lzCalendar.lzx
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/lzCalendar.lzx?rev=1304555&r1=1304554&r2=1304555&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/lzCalendar.lzx
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/src/modules/lzcalendar/lzCalendar.lzx
 Fri Mar 23 18:42:10 2012
@@ -207,7 +207,6 @@
        <!-- 176 pixels is the width of the mini calendar -->
        <simpleLabelButton labelid="1444" height="24" 
                        width="176" x="12" y="26" style="calendarButtonStyle">
-               <view resource="edit_add_rsc" x="4" y="4" />
         <handler name="onclick">
             parent.editCalendarEvent(null);
         </handler>


Reply via email to