Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / examples / image-organizer / imgorg / DirectCombo.js
diff --git a/examples/image-organizer/imgorg/DirectCombo.js b/examples/image-organizer/imgorg/DirectCombo.js
new file mode 100644 (file)
index 0000000..c009fcf
--- /dev/null
@@ -0,0 +1,69 @@
+/*!
+ * Ext JS Library 3.0.0
+ * Copyright(c) 2006-2009 Ext JS, LLC
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+Imgorg.DirectCombo = Ext.extend(Ext.form.ComboBox, {
+    displayField: 'text',
+    valueField: 'id',
+    triggerAction: 'all',
+    queryAction: 'name',
+    forceSelection: true,
+    mode: 'remote',
+    
+    initComponent: function() {
+        this.store = new Ext.data.DirectStore(Ext.apply({
+            api: this.api,
+            root: '',
+            fields: this.fields || ['text', 'id']
+        }, this.storeConfig));
+        
+        Imgorg.DirectCombo.superclass.initComponent.call(this);
+    }
+});
+
+Imgorg.TagCombo = Ext.extend(Imgorg.DirectCombo,{
+    forceSelection: false,
+    storeConfig: {
+        id: 'tag-store'
+    },
+    initComponent: function() {
+        Ext.apply(this.storeConfig, {
+            directFn: Imgorg.ss.Tags.load
+        });
+        Imgorg.TagCombo.superclass.initComponent.call(this);
+    }
+});
+Ext.reg('img-tagcombo', Imgorg.TagCombo);
+
+Imgorg.TagMultiCombo = Ext.extend(Ext.ux.MultiCombo,{
+    listClass: 'label-combo',
+    displayField: 'text',
+    valueField: 'id',
+    
+    initComponent: function() {
+        this.store = new Ext.data.DirectStore(Ext.apply({
+            directFn: Imgorg.ss.Tags.load,
+            root: '',
+            autoLoad: true,
+            fields: this.fields || ['text', 'id']
+        }, this.storeConfig));
+        this.plugins =new Ext.ux.MultiCombo.Checkable({});
+        Imgorg.DirectCombo.superclass.initComponent.call(this);
+    }
+});
+Ext.reg('img-tagmulticombo', Imgorg.TagMultiCombo);
+
+Imgorg.AlbumCombo = Ext.extend(Imgorg.DirectCombo, {
+    storeConfig: {
+        id: 'album-store'
+    },
+    initComponent: function() {
+        Ext.apply(this.storeConfig, {
+            directFn: Imgorg.ss.Albums.getAllInfo
+        });
+        Imgorg.AlbumCombo.superclass.initComponent.call(this);
+    }
+});
+Ext.reg('img-albumcombo', Imgorg.AlbumCombo);