You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by sm...@apache.org on 2007/12/08 10:32:42 UTC

svn commit: r602408 - /portals/jetspeed-2/trunk/jetspeed-portal-resources/src/main/resources/webapp/javascript/jetspeed/widget/EditorTable.src.js

Author: smilek
Date: Sat Dec  8 01:32:41 2007
New Revision: 602408

URL: http://svn.apache.org/viewvc?rev=602408&view=rev
Log:
The following revision comments are from branches/JETSPEED-2.1.3 revisions which were not individually checked-in to trunk
=== ---------------------------------------------------------------- ===
[ from branches/JETSPEED-2.1.3 r583998 ] | smilek | 2007-10-11 18:36:12 -0600 (Thu, 11 Oct 2007) | 1 line

continuation of desktop overhaul
=== ---------------------------------------------------------------- ===

Modified:
    portals/jetspeed-2/trunk/jetspeed-portal-resources/src/main/resources/webapp/javascript/jetspeed/widget/EditorTable.src.js

Modified: portals/jetspeed-2/trunk/jetspeed-portal-resources/src/main/resources/webapp/javascript/jetspeed/widget/EditorTable.src.js
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-portal-resources/src/main/resources/webapp/javascript/jetspeed/widget/EditorTable.src.js?rev=602408&r1=602407&r2=602408&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/jetspeed-portal-resources/src/main/resources/webapp/javascript/jetspeed/widget/EditorTable.src.js (original)
+++ portals/jetspeed-2/trunk/jetspeed-portal-resources/src/main/resources/webapp/javascript/jetspeed/widget/EditorTable.src.js Sat Dec  8 01:32:41 2007
@@ -1,318 +1,318 @@
-/*
+/*
  * 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.
- *
- * author: Steve Milek
- */
-
-dojo.provide("jetspeed.widget.EditorTable");
-
-dojo.require("dojo.widget.SortableTable");
-
-jetspeed.widget.EditorTable = function()
-{
-    dojo.widget.SortableTable.call(this);
-    this.widgetType = "EditorTable";
-    this.headerSortUpClass="selectedUp";
-	this.headerSortDownClass="selectedDown";
-};
-
-dojo.inherits( jetspeed.widget.EditorTable, dojo.widget.SortableTable);
-
-dojo.lang.extend( jetspeed.widget.EditorTable, {
-    saveWarningDialogWidgetId: null,
-    
-    /* derived class protocol - attach-to or override this methods */
-    updateEditor: function( rowData )
-    {
-
-    },
-    saveEntrySubmit: function( selectedRowData, /* boolean */ removeEntry )
-    {
-
-    },
-    clearAndDisableEditor: function()
-    {
-
-    },
-    getNewEntryPrototype: function()
-    {
-        return {};
-    },
-    
-    /* base class protocol */
-    render: function(bDontPreserve)
-    {
-        bDontPreserve = true;    // for EditorTable, all calls to render should not reset data (i.e. call SortableTable.parseDataFromTable())
-        jetspeed.widget.EditorTable.superclass.render.call( this, bDontPreserve );
-    },
-
-    buildRendering: function(args, frag)
-    {
-        jetspeed.widget.EditorTable.superclass.buildRendering.call( this, args, frag );
-        if ( args.templateCssPath )
-        {
-            dojo.html.insertCssFile( dojo.uri.dojoUri(args.templateCssPath), document, true );
-        }
-    },
-
-
-    /* methods */
-    hasRowChanged: function( rowData )
-    {
-        if ( ! rowData ) return false;
-        var tId = rowData.Id;
-        var masterData = this.getData( this.js_masterdata, tId );
-        var changed = ( rowData.__isNew || rowData.__isModified ) ? true : false;
-        if ( ! changed )
-        {
-            for ( var slotKey in masterData )
-            {
-                if ( rowData[ slotKey ] != masterData[ slotKey ] )
-                {
-                    //dojo.debug( "slot " + slotKey + " changed - old: " + masterData[ slotKey ] + " new: " + rowData[ slotKey ] ) ;
-                    changed = true;
-                    break;
-                }
-            }
-        }
-        return changed;
-    },
-    entryIsNew: function( rowData )
-    {
-        if ( ! rowData ) return false;
-        return rowData.__isNew ;
-    },
-    setModified: function( rowData )
-    {
-        if ( ! rowData ) return;
-        rowData.__isModified = true;
-    },
-    getSelectedRow: function()
-    {
-        if ( this.selected && this.selected.length == 1 )
-        {
-            var tId = this.selected[0].Id;
-            var data = this.getData( this.data, tId );
-            return data;
-        }
-        return null;
-    },
-    getData: function( tableWidgetData, matchId )
-    {
-        if ( ! tableWidgetData ) return null ;
-        for( var i = 0 ; i < tableWidgetData.length; i++ )
-        {
-            if ( tableWidgetData[ i ].Id == matchId )
-            {
-                return tableWidgetData[ i ];
-            }
-        }
-        return null;
-    },
-    getDataIndex: function( tableWidgetData, matchId )
-    {
-        if ( ! tableWidgetData ) return -1;
-        for( var i = 0 ; i < tableWidgetData.length; i++ )
-        {
-            if ( tableWidgetData[ i ].Id == matchId )
-            {
-                return i;
-            }
-        }
-        return -1;
-    },
-    processTableRowEvent: function( e )
-    {
-        var row = dojo.html.getParentByType( e.target, "tr" );
-        var rowData = this.getObjectFromRow( row );
-        this.updateEditor( rowData );
-    },
-
-    checkForChanges: function()
-    {
-        var selectedRowData = this.getSelectedRow();
-    
-        if ( ! selectedRowData ) return false;
-        var hasChanged = this.hasRowChanged( selectedRowData );
-        return ( ! hasChanged ? false : ( selectedRowData.__isNew ? "new" : "modified" ) );
-    },
-
-    updateClonedData: function( fromData, toData )
-    {
-        if ( ! fromData || ! toData ) return;
-        for ( var slotKey in fromData )
-        {
-            toData[ slotKey ] = fromData[ slotKey ];
-        }
-    },
-
-    printSelection: function()
-    {
-        if ( this.selected && this.selected.length == 1 )
-            dojo.debug( this.widgetId + " selection: " + jsDebugShallow( this.selected[0] ) );
-        else
-            dojo.debug( this.widgetId + " selection: null" );
-    },
-
-    newEntry: function()
-    {
-        if ( this.saveWarningDialogWidgetId )
-        {
-            if ( this.checkForChanges() )
-            {
-                dojo.widget.byId( this.saveWarningDialogWidgetId ).show();
-                return;
-            }
-        }
-    
-        var newEntry = dojo.lang.shallowCopy( this.getNewEntryPrototype() );
-        var tId = 1;
-        for ( var i = 0 ; i < this.js_masterdata.length; i++ )
-        {
-            if ( this.js_masterdata[i].Id >= tId )
-                tId = this.js_masterdata[i].Id + 1;
-        }
-        newEntry.Id = tId;
-        this.js_masterdata.push( dojo.lang.shallowCopy( newEntry ) );
-        newEntry.__isNew = true;
-        this.data.push( newEntry );
-        this.selected = [ dojo.lang.shallowCopy( newEntry ) ];
-
-        this.render(true);
-        this.showSelections();
-
-        this.updateEditor( newEntry );
-    },
-
-    deleteEntry: function()
-    {
-        var selectedRowData = this.getSelectedRow();
-    
-        if ( ! selectedRowData ) return;
-        var tId = selectedRowData.Id;
-    
-        if ( ! selectedRowData.__isNew  )
-            this.saveEntrySubmit( selectedRowData, true );
-
-        var tIndex = this.getDataIndex( this.js_masterdata, tId );
-        if ( tIndex != -1 )
-            this.js_masterdata.splice( tIndex, 1 );
-
-        tIndex = this.getDataIndex( this.data, tId );
-        if ( tIndex != -1 )
-            this.data.splice( tIndex, 1 );
-
-        this.selected = [];
-        this.render(true);
-        this.showSelections();
-    
-        this.clearAndDisableEditor();
-    },
-    saveEntry: function()
-    {
-        var selectedRowData = this.getSelectedRow();
-
-        if ( ! selectedRowData ) { dojo.raise( "saveEntry can't find selectedRowData" ) ; return; } 
-        var masterData = this.getData( this.js_masterdata, selectedRowData.Id );
-        if ( ! masterData ) { dojo.raise( "saveEntry can't find masterdata" ) ; return; } 
-
-        this.saveEntrySubmit( selectedRowData );
-
-        //delete masterData.__isNew;
-        //delete masterData.__isModified;
-        delete selectedRowData.__isNew;
-        delete selectedRowData.__isModified;
-        this.updateClonedData( selectedRowData, masterData );
-        this.updateClonedData( selectedRowData, this.selected[0] );
-        this.updateEditor( selectedRowData );
-    },
-
-    revertEntry: function()
-    {
-        var selectedRowData = this.getSelectedRow();
-    
-        if ( ! selectedRowData ) return;
-
-        if ( selectedRowData.__isNew )
-        {
-            deleteEntry();
-        }
-        else
-        {
-            delete selectedRowData.__isModified;
-            var masterData = this.getData( this.js_masterdata, selectedRowData.Id );
-            if ( ! masterData ) return;
-            this.updateClonedData( masterData, selectedRowData );
-            this.updateClonedData( masterData, this.selected[0] );
-            this.render(true);
-            this.showSelections();
-            this.updateEditor( masterData );
-        }
-    },
-
-    okToChangeSelectionOrExit: function( invocation )   // listSelectionChangeOk
-    {
-        if ( this.checkForChanges() )
-        {
-            if ( this.saveWarningDialogWidgetId )
-            {
-                dojo.widget.byId( this.saveWarningDialogWidgetId ).show();
-                return false;
-            }
-            else
-            {
-                this.saveEntry();
-            }
-        }
-        if ( invocation != null )
-            invocation.proceed();
-        return true;
-    },
-
-    dojoDebugTableData: function()
-    {
-        dojo.debug( debugTableData() );
-    },
-    debugTableData: function()
-    {
-        var tTableWidget = this;
-        // format: js_masterdata[index][key]=value (data[index][key]
-        buff = tTableWidget.widgetId + " data:" + "\r\n";
-        for ( var masterDataIndex = 0 ; masterDataIndex < tTableWidget.js_masterdata.length ; masterDataIndex++ )
-        {
-            buff += "[" + masterDataIndex + "]" + "\r\n";
-            var slotsUsed = new Object();
-            for ( var slotKey in tTableWidget.js_masterdata[masterDataIndex] )
-            {
-                buff += "   " + slotKey + "=" + tTableWidget.js_masterdata[masterDataIndex][ slotKey ];
-                if ( slotKey == "__isModified" || slotKey == "__isNew" )
-                    buff += "\r\n";
-                else
-                {
-                    var dataVal = null;
-                    if ( tTableWidget.data.length <= masterDataIndex )
-                       buff += " <out-of-bounds>" + "\r\n";
-                    else
-                    {
-                       dataVal = tTableWidget.data[masterDataIndex][ slotKey ];
-                       buff += " (" + ( dataVal == null ? "null" : dataVal ) + ")" + "\r\n";
-                    }
-                }
-            }
-        }
-        return buff;
-    }
-});
+ * 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.
+ *
+ * author: Steve Milek
+ */
+
+dojo.provide("jetspeed.widget.EditorTable");
+
+dojo.require("dojo.widget.SortableTable");
+
+jetspeed.widget.EditorTable = function()
+{
+    dojo.widget.SortableTable.call(this);
+    this.widgetType = "EditorTable";
+    this.headerSortUpClass="selectedUp";
+	this.headerSortDownClass="selectedDown";
+};
+
+dojo.inherits( jetspeed.widget.EditorTable, dojo.widget.SortableTable);
+
+dojo.lang.extend( jetspeed.widget.EditorTable, {
+    saveWarningDialogWidgetId: null,
+    
+    /* derived class protocol - attach-to or override this methods */
+    updateEditor: function( rowData )
+    {
+
+    },
+    saveEntrySubmit: function( selectedRowData, /* boolean */ removeEntry )
+    {
+
+    },
+    clearAndDisableEditor: function()
+    {
+
+    },
+    getNewEntryPrototype: function()
+    {
+        return {};
+    },
+    
+    /* base class protocol */
+    render: function(bDontPreserve)
+    {
+        bDontPreserve = true;    // for EditorTable, all calls to render should not reset data (i.e. call SortableTable.parseDataFromTable())
+        jetspeed.widget.EditorTable.superclass.render.call( this, bDontPreserve );
+    },
+
+    buildRendering: function(args, frag)
+    {
+        jetspeed.widget.EditorTable.superclass.buildRendering.call( this, args, frag );
+        if ( args.templateCssPath )
+        {
+            dojo.html.insertCssFile( dojo.uri.dojoUri(args.templateCssPath), document, true );
+        }
+    },
+
+
+    /* methods */
+    hasRowChanged: function( rowData )
+    {
+        if ( ! rowData ) return false;
+        var tId = rowData.Id;
+        var masterData = this.getData( this.js_masterdata, tId );
+        var changed = ( rowData.__isNew || rowData.__isModified ) ? true : false;
+        if ( ! changed )
+        {
+            for ( var slotKey in masterData )
+            {
+                if ( rowData[ slotKey ] != masterData[ slotKey ] )
+                {
+                    //dojo.debug( "slot " + slotKey + " changed - old: " + masterData[ slotKey ] + " new: " + rowData[ slotKey ] ) ;
+                    changed = true;
+                    break;
+                }
+            }
+        }
+        return changed;
+    },
+    entryIsNew: function( rowData )
+    {
+        if ( ! rowData ) return false;
+        return rowData.__isNew ;
+    },
+    setModified: function( rowData )
+    {
+        if ( ! rowData ) return;
+        rowData.__isModified = true;
+    },
+    getSelectedRow: function()
+    {
+        if ( this.selected && this.selected.length == 1 )
+        {
+            var tId = this.selected[0].Id;
+            var data = this.getData( this.data, tId );
+            return data;
+        }
+        return null;
+    },
+    getData: function( tableWidgetData, matchId )
+    {
+        if ( ! tableWidgetData ) return null ;
+        for( var i = 0 ; i < tableWidgetData.length; i++ )
+        {
+            if ( tableWidgetData[ i ].Id == matchId )
+            {
+                return tableWidgetData[ i ];
+            }
+        }
+        return null;
+    },
+    getDataIndex: function( tableWidgetData, matchId )
+    {
+        if ( ! tableWidgetData ) return -1;
+        for( var i = 0 ; i < tableWidgetData.length; i++ )
+        {
+            if ( tableWidgetData[ i ].Id == matchId )
+            {
+                return i;
+            }
+        }
+        return -1;
+    },
+    processTableRowEvent: function( e )
+    {
+        var row = dojo.html.getParentByType( e.target, "tr" );
+        var rowData = this.getObjectFromRow( row );
+        this.updateEditor( rowData );
+    },
+
+    checkForChanges: function()
+    {
+        var selectedRowData = this.getSelectedRow();
+    
+        if ( ! selectedRowData ) return false;
+        var hasChanged = this.hasRowChanged( selectedRowData );
+        return ( ! hasChanged ? false : ( selectedRowData.__isNew ? "new" : "modified" ) );
+    },
+
+    updateClonedData: function( fromData, toData )
+    {
+        if ( ! fromData || ! toData ) return;
+        for ( var slotKey in fromData )
+        {
+            toData[ slotKey ] = fromData[ slotKey ];
+        }
+    },
+
+    printSelection: function()
+    {
+        if ( this.selected && this.selected.length == 1 )
+            dojo.debug( this.widgetId + " selection: " + jsDebugShallow( this.selected[0] ) );
+        else
+            dojo.debug( this.widgetId + " selection: null" );
+    },
+
+    newEntry: function()
+    {
+        if ( this.saveWarningDialogWidgetId )
+        {
+            if ( this.checkForChanges() )
+            {
+                dojo.widget.byId( this.saveWarningDialogWidgetId ).show();
+                return;
+            }
+        }
+    
+        var newEntry = dojo.lang.shallowCopy( this.getNewEntryPrototype() );
+        var tId = 1;
+        for ( var i = 0 ; i < this.js_masterdata.length; i++ )
+        {
+            if ( this.js_masterdata[i].Id >= tId )
+                tId = this.js_masterdata[i].Id + 1;
+        }
+        newEntry.Id = tId;
+        this.js_masterdata.push( dojo.lang.shallowCopy( newEntry ) );
+        newEntry.__isNew = true;
+        this.data.push( newEntry );
+        this.selected = [ dojo.lang.shallowCopy( newEntry ) ];
+
+        this.render(true);
+        this.showSelections();
+
+        this.updateEditor( newEntry );
+    },
+
+    deleteEntry: function()
+    {
+        var selectedRowData = this.getSelectedRow();
+    
+        if ( ! selectedRowData ) return;
+        var tId = selectedRowData.Id;
+    
+        if ( ! selectedRowData.__isNew  )
+            this.saveEntrySubmit( selectedRowData, true );
+
+        var tIndex = this.getDataIndex( this.js_masterdata, tId );
+        if ( tIndex != -1 )
+            this.js_masterdata.splice( tIndex, 1 );
+
+        tIndex = this.getDataIndex( this.data, tId );
+        if ( tIndex != -1 )
+            this.data.splice( tIndex, 1 );
+
+        this.selected = [];
+        this.render(true);
+        this.showSelections();
+    
+        this.clearAndDisableEditor();
+    },
+    saveEntry: function()
+    {
+        var selectedRowData = this.getSelectedRow();
+
+        if ( ! selectedRowData ) { dojo.raise( "saveEntry can't find selectedRowData" ) ; return; } 
+        var masterData = this.getData( this.js_masterdata, selectedRowData.Id );
+        if ( ! masterData ) { dojo.raise( "saveEntry can't find masterdata" ) ; return; } 
+
+        this.saveEntrySubmit( selectedRowData );
+
+        //delete masterData.__isNew;
+        //delete masterData.__isModified;
+        delete selectedRowData.__isNew;
+        delete selectedRowData.__isModified;
+        this.updateClonedData( selectedRowData, masterData );
+        this.updateClonedData( selectedRowData, this.selected[0] );
+        this.updateEditor( selectedRowData );
+    },
+
+    revertEntry: function()
+    {
+        var selectedRowData = this.getSelectedRow();
+    
+        if ( ! selectedRowData ) return;
+
+        if ( selectedRowData.__isNew )
+        {
+            deleteEntry();
+        }
+        else
+        {
+            delete selectedRowData.__isModified;
+            var masterData = this.getData( this.js_masterdata, selectedRowData.Id );
+            if ( ! masterData ) return;
+            this.updateClonedData( masterData, selectedRowData );
+            this.updateClonedData( masterData, this.selected[0] );
+            this.render(true);
+            this.showSelections();
+            this.updateEditor( masterData );
+        }
+    },
+
+    okToChangeSelectionOrExit: function( invocation )   // listSelectionChangeOk
+    {
+        if ( this.checkForChanges() )
+        {
+            if ( this.saveWarningDialogWidgetId )
+            {
+                dojo.widget.byId( this.saveWarningDialogWidgetId ).show();
+                return false;
+            }
+            else
+            {
+                this.saveEntry();
+            }
+        }
+        if ( invocation != null )
+            invocation.proceed();
+        return true;
+    },
+
+    dojoDebugTableData: function()
+    {
+        dojo.debug( debugTableData() );
+    },
+    debugTableData: function()
+    {
+        var tTableWidget = this;
+        // format: js_masterdata[index][key]=value (data[index][key]
+        buff = tTableWidget.widgetId + " data:" + "\r\n";
+        for ( var masterDataIndex = 0 ; masterDataIndex < tTableWidget.js_masterdata.length ; masterDataIndex++ )
+        {
+            buff += "[" + masterDataIndex + "]" + "\r\n";
+            var slotsUsed = new Object();
+            for ( var slotKey in tTableWidget.js_masterdata[masterDataIndex] )
+            {
+                buff += "   " + slotKey + "=" + tTableWidget.js_masterdata[masterDataIndex][ slotKey ];
+                if ( slotKey == "__isModified" || slotKey == "__isNew" )
+                    buff += "\r\n";
+                else
+                {
+                    var dataVal = null;
+                    if ( tTableWidget.data.length <= masterDataIndex )
+                       buff += " <out-of-bounds>" + "\r\n";
+                    else
+                    {
+                       dataVal = tTableWidget.data[masterDataIndex][ slotKey ];
+                       buff += " (" + ( dataVal == null ? "null" : dataVal ) + ")" + "\r\n";
+                    }
+                }
+            }
+        }
+        return buff;
+    }
+});



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org