Author: jerome
Date: 2008-08-24 11:07:56 +0200 (Sun, 24 Aug 2008)
New Revision: 1574

Modified:
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/PseudoFileBrowser/FileBrowser.java
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Settings.java
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/XMLReader.java
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/XMLWriter.java
Log:
* Added copy from favorites to alerts.
* Added copy from alerts to favorites.
* Added copy from alerts to alerts
* Added copy from favorites to favorites.

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
     2008-08-23 07:44:41 UTC (rev 1573)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
     2008-08-24 09:07:56 UTC (rev 1574)
@@ -71,18 +71,12 @@
 import javax.swing.JPopupMenu;
 import javax.swing.JScrollPane;
 import javax.swing.JTabbedPane;
-import javax.swing.JTable;
 import javax.swing.SwingUtilities;
 import javax.swing.UIManager;
 import javax.swing.border.BevelBorder;
-import javax.swing.event.ListDataEvent;
-import javax.swing.event.ListDataListener;
 import javax.swing.event.PopupMenuEvent;
 import javax.swing.event.PopupMenuListener;
 import javax.swing.plaf.InsetsUIResource;
-import javax.swing.table.AbstractTableModel;
-import javax.swing.table.TableModel;
-import javax.swing.table.TableRowSorter;
 
 import org.jdesktop.jdic.tray.SystemTray;
 import org.jdesktop.jdic.tray.TrayIcon;
@@ -2078,6 +2072,7 @@
                else 
if(arg0.getPropertyName().equalsIgnoreCase("Remote-Value-Changed")){
                        Object[] dat = (Object[])arg0.getNewValue();
                        String path = dat[1].toString();
+                       
                        String ty = dat[2].toString();
                        if(ty.equalsIgnoreCase("gadget")){
                                if(this.currentRemoteSelectedGadget != null){
@@ -2739,8 +2734,7 @@
        
        
        public void addToPlaylist(DropTargetDropEvent arg0){
-               //Create action with an attitune.
-               System.out.println(this.playlistDragToIndex);
+               //Create action with an attitune.
                if(this.type == CcInterface.TYPE_ATTITUNES){  
                        if(this.playlistDragToIndex == 0){
                                Object[] datas = 
file_browser.getDatasAsRemoteStruct(TYPE_ATTITUNES, this.view);
@@ -2779,6 +2773,28 @@
                        }
                }
                
+               else if(this.type == CcInterface.TYPE_ALERT){
+                       if(this.playlistDragToIndex == 1){ //then alert to 
remote copy.
+                               
settings.registerAlertAsRemote(settings.getUID(alertPlaylist.getSelectedName()));
+                               
remotePlaylist.setDatas(settings.getRemoteListDatas());
+                               this.showPlaylist(1);
+                       }else{ //then simple copy from remote, to remote.
+                               
settings.copyAlert(settings.getUID(alertPlaylist.getSelectedName()));
+                               
alertPlaylist.setDatas(settings.getAlertListDatas());
+                       }
+               }
+               
+               else if(this.type == CcInterface.TYPE_REMOTELIST){
+                       if(this.playlistDragToIndex == 0){
+                               
settings.registerRemoteAsAlert(remotePlaylist.getSelectedName());
+                               
alertPlaylist.setDatas(settings.getAlertListDatas());
+                               this.showPlaylist(0);
+                       }else{ //simple copy.
+                               
settings.copyRemote(remotePlaylist.getSelectedName());
+                               
remotePlaylist.setDatas(settings.getRemoteListDatas());
+                       }
+               }
+               
                
this.remotePlaylist.checkForCorruption(file_browser.AttitunesDatas, 
file_browser.GadgetsDatas);
                
this.alertPlaylist.checkForCorruption(file_browser.AttitunesDatas, 
file_browser.GadgetsDatas);
        }

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/PseudoFileBrowser/FileBrowser.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/PseudoFileBrowser/FileBrowser.java
    2008-08-23 07:44:41 UTC (rev 1573)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/PseudoFileBrowser/FileBrowser.java
    2008-08-24 09:07:56 UTC (rev 1574)
@@ -155,7 +155,7 @@
                
                public String getAttituneDescriptionFromPath(String path){
                        for(Object[] objet : this.AttitunesDatas){
-                               if(objet[4].toString().equalsIgnoreCase(path)){
+                               if(objet[5].toString().equalsIgnoreCase(path)){
                                        return objet[3].toString();
                                }
                        }

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Settings.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Settings.java
  2008-08-23 07:44:41 UTC (rev 1573)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Settings.java
  2008-08-24 09:07:56 UTC (rev 1574)
@@ -140,7 +140,7 @@
                return this.reader.isRemoteListInitialized();
        }
        
-       //TODO 
+       
        public boolean haveAlertList(){
                return this.reader.isAlertListInitialized();
        }
@@ -150,7 +150,7 @@
                return reader.getRemoteList();
        }
        
-       //TODO 
+       
        public Object[][] getAlertListDatas(){
                return this.reader.getAlertList();
        }
@@ -301,5 +301,23 @@
        //Return registered pitch.
        public int getPitch(){
                return this.reader.getPitch();
+       }
+       
+       
+       public void registerAlertAsRemote(String uid){
+               this.writer.registerAlertDatasAsRemoteDatas(uid);
+       }
+       
+       
+       public void registerRemoteAsAlert(String name){
+               this.writer.registerRemoteDatasAsAlertDatas(name);
+       }
+       
+       public void copyAlert(String uid){
+               this.writer.copyAlert(uid);
+       }
+       
+       public void copyRemote(String name){
+               this.writer.copyRemote(name);
        }
 }

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/XMLReader.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/XMLReader.java
 2008-08-23 07:44:41 UTC (rev 1573)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/XMLReader.java
 2008-08-24 09:07:56 UTC (rev 1574)
@@ -24,6 +24,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.util.Hashtable;
 import java.util.Vector;
 
 import javax.xml.parsers.DocumentBuilder;
@@ -384,16 +385,13 @@
                        if(regName.equals(name) && 
type.toLowerCase().equals("gadget")){
                                NodeList config = 
((Element)attElem.item(i)).getElementsByTagName("Parameters");
                                NodeList conf = config.item(0).getChildNodes();
-                               System.out.println("matching parameters");
                                        
                                        for(int y=0; y < conf.getLength(); y++){
                                                Node param = conf.item(y);
                                                
System.out.println(param.getNodeName());
                                                
if(param.getNodeName().equalsIgnoreCase("parameter")){
-                                                       
System.out.println("getting parameters");
                                                        String pname = 
param.getAttributes().getNamedItem("name").getTextContent();
                                                        String value = 
param.getAttributes().getNamedItem("value").getTextContent();
-                                                       
System.out.println(pname + " : " + value);
                                                        //Register new gadget 
parameter.
                                                        for(int x=0; x < 
instance.getGadget().getParameters().size(); x++){
                                                                GadgetParameter 
gdgParam = instance.getGadget().getParameters().get(x);
@@ -403,8 +401,6 @@
                                                        }
                                                }
                                        }
-                                       
-                       
                        }
                }
                
@@ -463,5 +459,32 @@
                }
                
                return false;
-       }
+       }
+       
+       
+       public Vector<Hashtable<String, String>> getConfigRemoted(String name){
+               Vector<Hashtable<String, String>> hash = new 
Vector<Hashtable<String, String>>();
+               NodeList attElem = 
this.getDocument().getElementsByTagName("remoted");
+               for(int i=0; i < attElem.getLength(); i++){
+                       String regName = 
attElem.item(i).getAttributes().getNamedItem("name").getTextContent();
+                       String type = 
attElem.item(i).getAttributes().getNamedItem("type").getTextContent();
+                       if(regName.equals(name) && 
type.toLowerCase().equals("gadget")){
+                               Element oneObjectDatas = 
(Element)attElem.item(i);
+                               try{
+                                       Element conf = 
(Element)oneObjectDatas.getElementsByTagName("Parameters").item(0);
+                                       NodeList nodes = 
conf.getElementsByTagName("parameter");
+                                       for(int y=0; y < nodes.getLength(); 
y++){
+                                               Node node = nodes.item(y);
+                                               Hashtable<String, String> table 
= new Hashtable<String, String>();
+                                               table.put("name", 
node.getAttributes().getNamedItem("name").getTextContent());
+                                               table.put("value", 
node.getAttributes().getNamedItem("value").getTextContent());
+                                               hash.add(table);
+                                       }
+                               }catch(Exception except){return hash;}  
+                               
+                       }
+               }
+               return hash;
+       }
+       
 }

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/XMLWriter.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/XMLWriter.java
 2008-08-23 07:44:41 UTC (rev 1573)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/XMLWriter.java
 2008-08-24 09:07:56 UTC (rev 1574)
@@ -23,6 +23,9 @@
 package com.tuxdroid.cc.Utils;
 
 import java.io.File;
+import java.rmi.server.UID;
+import java.util.Hashtable;
+import java.util.Vector;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -149,11 +152,9 @@
         
         //Create AlertList Element.
         Element alertList = document.createElement("AlertList");
-        alertList.setAttribute("initialized", "false");
+        alertList.setAttribute("initialized", "false");
         
         
-        
-        
         //Adding new elements.
         language.appendChild(lang);
         language.appendChild(country);
@@ -425,7 +426,6 @@
                                                                                
                 GadgetObject gadget){
                
                Document document = reader.getDocument();
-               System.out.println(gadget.getName());
                NodeList attElem = document.getElementsByTagName("remoted");
                for(int i=0; i < attElem.getLength(); i++){
                        String regName = 
attElem.item(i).getAttributes().getNamedItem("name").getTextContent();
@@ -460,5 +460,273 @@
                                this.registerChanges(document); 
                        }
                }
+       }
+       
+       
+       public void registerAlertDatasAsRemoteDatas(String uid){
+               NodeList node = 
this.reader.getDocument().getElementsByTagName("alert");
+               int index = this.reader.getIndexByUUID(uid);
+               Element oneObjectDatas = (Element)node.item(index);
+               //Getting attributes.
+               Hashtable<String, String> tableAlertDefinition = new 
Hashtable<String, String>();
+               Vector<Hashtable<String, String>> tableAlertParameters = new 
Vector<Hashtable<String, String>>();
+               
+               tableAlertDefinition.put("name", 
oneObjectDatas.getAttribute("name")  + " (Alert copy)");
+               tableAlertDefinition.put("author", 
oneObjectDatas.getAttribute("author"));
+               tableAlertDefinition.put("path", 
oneObjectDatas.getAttribute("path"));
+               tableAlertDefinition.put("type", 
oneObjectDatas.getAttribute("type"));
+               
+               Element parametersElem = 
(Element)oneObjectDatas.getElementsByTagName("Parameters").item(0);
+               try{
+                       NodeList parametersNode = 
parametersElem.getElementsByTagName("parameter");
+               
+               
+                       
if(tableAlertDefinition.get("type").equalsIgnoreCase("gadget")){
+                       
+                               for(int i=0; i < parametersNode.getLength(); 
i++){
+                                       
if(parametersNode.item(i).getNodeName().equalsIgnoreCase("parameter")){
+                                               //then getting alert gadget 
setting
+                                               Hashtable<String, String> hash 
= new Hashtable<String, String>();
+                                               hash.put("name", 
parametersNode.item(i).getAttributes()
+                                                                               
                        .getNamedItem("name").getTextContent());
+                                               hash.put("value", 
parametersNode.item(i).getAttributes()
+                                                                               
                        .getNamedItem("value").getTextContent());
+                                               tableAlertParameters.add(hash); 
// adding to parameters values.
+                                       }
+                               }
+                       
+                       }
+               }catch(Exception except){}
+               
+               
+               //Checking if they already have a named "name" item into remote 
list.
+               for(Object[] remote : this.reader.getRemoteList()){
+                       
while(remote[0].toString().equalsIgnoreCase(tableAlertDefinition.get("name"))){
+                               //An item is already named "name" then, rename.
+                               String name = tableAlertDefinition.get("name");
+                               name += " (Alert copy)";
+                               tableAlertDefinition.put("name", name);
+                       }
+               }
+               //Registering new "alert" entry.
+               Document doc = this.reader.getDocument();
+               Node root = doc.getElementsByTagName("RemoteList").item(0);
+               Element remoteElem = doc.createElement("remoted");
+               remoteElem.setAttribute("name", 
tableAlertDefinition.get("name"));
+               remoteElem.setAttribute("author", 
tableAlertDefinition.get("author"));
+               remoteElem.setAttribute("path", 
tableAlertDefinition.get("path"));
+               remoteElem.setAttribute("type", 
tableAlertDefinition.get("type"));
+               
+               if(tableAlertParameters.size() > 0){ //then they have 
parameters.
+                       Element remoteParams = doc.createElement("Parameters");
+                       for(Hashtable<String, String> hash : 
tableAlertParameters){
+                               Element parameter = 
doc.createElement("parameter");
+                               parameter.setAttribute("name", 
hash.get("name"));
+                               parameter.setAttribute("value", 
hash.get("value"));
+                               //adding one parameter.
+                               remoteParams.appendChild(parameter);
+                       }
+                       
+                       remoteElem.appendChild(remoteParams);
+               }
+               root.appendChild(remoteElem);
+               this.registerChanges(doc);
+       }
+       
+       
+       public void registerRemoteDatasAsAlertDatas(String name){
+               Hashtable<String, String> tableRemoteValues = new 
Hashtable<String, String>();
+               Vector<Hashtable<String, String>> tableRemoteParams = new 
Vector<Hashtable<String, String>>();
+               
+               Object[][] datas = this.reader.getRemoteList();
+               boolean have = false;
+               Object[] objet = null;
+               
+               for(Object[] oneObject : datas){
+                       if(oneObject[0].toString().equalsIgnoreCase(name)){
+                               have = true;
+                               objet = oneObject; 
+                       }
+               }
+               if(have){ //then copy values
+                       tableRemoteValues.put("name", objet[0].toString() + " 
(Favorites copy)");
+                       //Checking if they already have a named "name" item 
into remote list.
+                       for(Object[] remote : this.reader.getAlertList()){
+                               
while(remote[0].toString().equalsIgnoreCase(tableRemoteValues.get("name"))){
+                                       //An item is already named "name" then, 
rename.
+                                       String nam = 
tableRemoteValues.get("name");
+                                       nam += " (Favorites copy)";
+                                       tableRemoteValues.put("name", nam);
+                               }
+                       }
+                       tableRemoteValues.put("author", objet[2].toString());
+                       tableRemoteValues.put("path", objet[3].toString());
+                       tableRemoteValues.put("type", objet[1].toString());
+                       
+                       if(objet[1].toString().equalsIgnoreCase("gadget")){
+                               if(this.reader.haveConfigRemoted(name)){
+                                       this.reader.getConfigRemoted(name);
+                                       tableRemoteParams = 
this.reader.getConfigRemoted(name);
+                               }
+                       }
+                       
+                       //Registering new "alert" entry.
+                       Document doc = this.reader.getDocument();
+                       Node root = 
doc.getElementsByTagName("AlertList").item(0);
+                       Element remoteElem = doc.createElement("alert");
+                       remoteElem.setAttribute("name", 
tableRemoteValues.get("name"));
+                       remoteElem.setAttribute("author", 
tableRemoteValues.get("author"));
+                       remoteElem.setAttribute("path", 
tableRemoteValues.get("path"));
+                       remoteElem.setAttribute("type", 
tableRemoteValues.get("type"));
+                       //Setting default alert configuration.
+                       this.setDefaultAlertConfig(doc, remoteElem);
+                       if(tableRemoteParams.size() > 0){ //then they have 
parameters.
+                               Element remoteParams = 
doc.createElement("Parameters");
+                               for(Hashtable<String, String> hash : 
tableRemoteParams){
+                                       Element parameter = 
doc.createElement("parameter");
+                                       parameter.setAttribute("name", 
hash.get("name"));
+                                       parameter.setAttribute("value", 
hash.get("value"));
+                                       //adding one parameter.
+                                       remoteParams.appendChild(parameter);
+                               }
+                               
+                               remoteElem.appendChild(remoteParams);
+                       }
+                       root.appendChild(remoteElem);
+                       this.registerChanges(doc);
+               }
+       }
+       
+       
+       public void copyAlert(String uid){
+               Hashtable<String, String> tableValues = new Hashtable<String, 
String>();
+               Vector<Hashtable<String, String>> tableParams = new 
Vector<Hashtable<String, String>>();
+               
+               NodeList node = 
this.reader.getDocument().getElementsByTagName("alert");
+               int index = this.reader.getIndexByUUID(uid);
+               Element oneObjectDatas = (Element)node.item(index);
+               //processing to copy.
+               String name = oneObjectDatas.getAttribute("name");
+               
+               //Checking for name
+               for(Object[] obj : this.reader.getAlertList()){
+                       while(obj[0].toString().equalsIgnoreCase(name)){
+                               //An item is already named "name" then, rename.
+                               name += " (Alert copy)";
+                       }
+                       tableValues.put("name", name);
+                       tableValues.put("author", obj[2].toString());
+                       tableValues.put("path", obj[3].toString());
+                       tableValues.put("type", obj[1].toString());
+               }
+               
+               Element parametersElem = 
(Element)oneObjectDatas.getElementsByTagName("Parameters").item(0);
+               try{
+                       NodeList parametersNode = 
parametersElem.getElementsByTagName("parameter");
+               
+               
+                       if(tableValues.get("type").equalsIgnoreCase("gadget")){
+                       
+                               for(int i=0; i < parametersNode.getLength(); 
i++){
+                                       
if(parametersNode.item(i).getNodeName().equalsIgnoreCase("parameter")){
+                                               //then getting alert gadget 
setting
+                                               Hashtable<String, String> hash 
= new Hashtable<String, String>();
+                                               hash.put("name", 
parametersNode.item(i).getAttributes()
+                                                                               
                        .getNamedItem("name").getTextContent());
+                                               hash.put("value", 
parametersNode.item(i).getAttributes()
+                                                                               
                        .getNamedItem("value").getTextContent());
+                                               tableParams.add(hash); // 
adding to parameters values.
+                                       }
+                               }
+                       
+                       }
+               }catch(Exception except){}
+               
+               Document doc = this.reader.getDocument();
+               Node root = doc.getElementsByTagName("AlertList").item(0);
+               Element remoteElem = doc.createElement("alert");
+               remoteElem.setAttribute("name", tableValues.get("name"));
+               remoteElem.setAttribute("author", tableValues.get("author"));
+               remoteElem.setAttribute("path", tableValues.get("path"));
+               remoteElem.setAttribute("type", tableValues.get("type"));
+               //Setting default alert configuration.
+               this.setDefaultAlertConfig(doc, remoteElem);
+               if(tableParams.size() > 0){ //then they have parameters.
+                       Element remoteParams = doc.createElement("Parameters");
+                       for(Hashtable<String, String> hash : tableParams){
+                               Element parameter = 
doc.createElement("parameter");
+                               parameter.setAttribute("name", 
hash.get("name"));
+                               parameter.setAttribute("value", 
hash.get("value"));
+                               //adding one parameter.
+                               remoteParams.appendChild(parameter);
+                       }
+                       
+                       remoteElem.appendChild(remoteParams);
+               }
+               root.appendChild(remoteElem);
+               this.registerChanges(doc);
+       }
+       
+       
+       public void copyRemote(String name){
+               Hashtable<String, String> tableValues = new Hashtable<String, 
String>();
+               Vector<Hashtable<String, String>> tableParams = new 
Vector<Hashtable<String, String>>();
+               
+               Object[][] datas = this.reader.getRemoteList();
+               boolean have = false;
+               Object[] objet = null;
+               
+               for(Object[] oneObject : datas){
+                       if(oneObject[0].toString().equalsIgnoreCase(name)){
+                               have = true;
+                               objet = oneObject; 
+                       }
+               }
+               if(have){ //then copy values
+                       tableValues.put("name", objet[0].toString() + " 
(Favorites copy)");
+                       //Checking if they already have a named "name" item 
into remote list.
+                       for(Object[] remote : this.reader.getRemoteList()){
+                               
while(remote[0].toString().equalsIgnoreCase(tableValues.get("name"))){
+                                       //An item is already named "name" then, 
rename.
+                                       String nam = tableValues.get("name");
+                                       nam += " (Favorites copy)";
+                                       tableValues.put("name", nam);
+                               }
+                       }
+                       tableValues.put("author", objet[2].toString());
+                       tableValues.put("path", objet[3].toString());
+                       tableValues.put("type", objet[1].toString());
+                       
+                       if(objet[1].toString().equalsIgnoreCase("gadget")){
+                               if(this.reader.haveConfigRemoted(name)){
+                                       this.reader.getConfigRemoted(name);
+                                       tableParams = 
this.reader.getConfigRemoted(name);
+                               }
+                       }
+                       
+                       //Registering new "alert" entry.
+                       Document doc = this.reader.getDocument();
+                       Node root = 
doc.getElementsByTagName("RemoteList").item(0);
+                       Element remoteElem = doc.createElement("remoted");
+                       remoteElem.setAttribute("name", 
tableValues.get("name"));
+                       remoteElem.setAttribute("author", 
tableValues.get("author"));
+                       remoteElem.setAttribute("path", 
tableValues.get("path"));
+                       remoteElem.setAttribute("type", 
tableValues.get("type"));
+                       //Setting default alert configuration.
+                       if(tableParams.size() > 0){ //then they have parameters.
+                               Element remoteParams = 
doc.createElement("Parameters");
+                               for(Hashtable<String, String> hash : 
tableParams){
+                                       Element parameter = 
doc.createElement("parameter");
+                                       parameter.setAttribute("name", 
hash.get("name"));
+                                       parameter.setAttribute("value", 
hash.get("value"));
+                                       //adding one parameter.
+                                       remoteParams.appendChild(parameter);
+                               }
+                               
+                               remoteElem.appendChild(remoteParams);
+                       }
+                       root.appendChild(remoteElem);
+                       this.registerChanges(doc);
+               }
        }
 }


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to