Ignore:
Timestamp:
May 10, 2010, 7:42:51 PM (14 years ago)
Author:
tobias
Message:

additional clients can be added to the configuration

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vanHelsing/trunk/gui/src/de/dass_it/vanhelsing/gui/ConfigurationBean.java

    r868 r871  
    1818 * List all Bacula configuration components by name.
    1919 */
    20 public class ConfigurationBean implements ViewBean{
     20public class ConfigurationBean implements IViewBean{
    2121       
    2222       
     
    6363                dataTree.createKeyValueLists();
    6464                dataTree.updateUserObjects();
     65                createResource = false;
     66                selectedObject = null;
    6567        }
    6668       
     
    8486                        selectedObject = (ConcreteUserObjectItem)((UserObjectItemType)(node.getUserObject())).getUserObject();
    8587                }
    86         }
    87         /*public void userObjectItemNodeSelected(ActionEvent ae) {
    88                 DefaultMutableTreeNode node;
    89                 UserObjectItem userObject;
    90                 selectedObject.setViewItemList(viewItemList) = new ArrayList<ViewItem>();
    91                 String Id = BeanUtil.getRequestParameter("userObject.resId");
    92                 String name = BeanUtil.getRequestParameter("userObject.resName");
    93                 String selected = BeanUtil.getRequestParameter("ice.event.shift");
    94                 node = getNode(Id, tree);
    95                 if (selected.equals("true")){
    96                         ((UserObjectItemType)node.getUserObject()).switchSelected();
    97                 }
    98                 String type = ((UserObjectItem) ((UserObjectItemType) node
    99                                 .getUserObject()).getUserObject()).getResType();
    100                 String resName = ((ItemType)((UserObjectItem) ((UserObjectItemType) node
    101                                 .getUserObject()).getUserObject())).getResName();
    102                 String director = ((ItemType)((UserObjectItem) ((UserObjectItemType) node
    103                                 .getUserObject()).getUserObject())).getDirector();
    104                 String classType = "de.dass_it.vanhelsing.gui.items." + type + "Item";
    105                 String accessType = BeanUtil.getAccessType(type.toLowerCase());
    106                 try {
    107                         UserObjectItem item = ((UserObjectItemType) (node.getUserObject()))
    108                                         .getUserObject();
    109                         Class c = ((UserObjectItemType) (node.getUserObject()))
    110                                         .getUserObject().getClass();
    111                         Method[] m = c.getDeclaredMethods();
    112                         String keyValue;
    113                         String key;
    114                         ViewItem vi;
    115                         for (Method n : m) {
    116                                 if (n.getName().startsWith("get")) {
    117                                         keyValue = (String) n.invoke(item, (Object[]) null);
    118                                         if (keyValue == null)
    119                                                 continue;
    120                                         key = n.getName().substring(3);
    121                                         vi = new ViewItem();
    122                                         vi.setResId(new Integer(Id));
    123                                         vi.setKey(key);
    124                                         vi.setKeyValue(keyValue);
    125                                         vi.setResType(type);
    126                                         vi.setResName(resName);
    127                                         vi.setDirector(director);
    128                                         vi.setRendererFlag(BeanUtil.getRenderer(accessType, key));
    129                                         vi.setRequired(BeanUtil.getRequired(accessType, key));
    130                                         if (vi.getSelectOneMenu() != null){
    131                                                 DefaultMutableTreeNode[] dmtn = getChildNodes(tree, vi.getKey());
    132                                                 if (dmtn != null) {
    133                                                         SelectItem[] si = new SelectItem[dmtn.length];
    134                                                         String objectType;
    135                                                         for (int i = 0; i < dmtn.length; i++){
    136                                                                 UserObjectItem nodeObject = ((UserObjectItemType)dmtn[i].getUserObject()).getUserObject();
    137                                                                 objectType = "de.dass_it.vanhelsing.gui.items." + vi.getKey() +"Item";
    138                                                                 Class subClass = Class.forName(objectType);
    139                                                                 Class myClass = nodeObject.getClass().asSubclass(subClass);
    140                                                                 Method o = myClass.getMethod("getName", (Class[])null);
    141                                                                 si[i] = new SelectItem((String)o.invoke(nodeObject, (Object[])null),
    142                                                                                 (String)o.invoke(nodeObject, (Object[])null));
    143                                                                
    144                                                         }
    145                                                         vi.setKeyValueList(si);
    146                                                 }
    147                                         }
    148                                         selectedObject.add(vi);
    149                                 }
    150                                 selectedObject.trimToSize();
    151                         }
    152                 } catch (Exception e) {
    153                         e.printStackTrace();
    154                 }
    155         }*/
    156         /**
    157          * return an array of nodes of a given resource type
    158          *
    159          * @param tree2         copy of the data tree
    160          * @param key           name of the requested resource type
    161          * @return dmtn         array of nodes of a given resource type
    162          * @return null         null object there are no nodes of the requested type
    163          */
    164         /*private DefaultMutableTreeNode[] getChildNodes(DefaultTreeModel tree2, String key) {
    165                 DefaultMutableTreeNode[] dmtn;
    166                 DefaultMutableTreeNode root = (DefaultMutableTreeNode)tree2.getRoot();
    167                 DefaultMutableTreeNode node;
    168                 for (int i = 0; i< root.getChildCount(); i++){
    169                         node = (DefaultMutableTreeNode)root.getChildAt(i);
    170                         if (((UserObjectItemType)(node.getUserObject())).getUserObject().getResType().equals(key)){
    171                                 dmtn = new DefaultMutableTreeNode[node.getChildCount()];
    172                                 for (int j = 0; j < node.getChildCount(); j++){
    173                                         dmtn[j] = (DefaultMutableTreeNode)node.getChildAt(j);
    174                                 }
    175                                 return dmtn;
    176                         }
    177                 }
    178                 return null;
    179         }*/
    180        
    181         /**
    182          *
     88                createResource = false;
     89        }
     90
     91        /**
     92         * reads the properties of a given resource to create a resource object
    18393         * @param ae
    18494         */
    185         /*public void newClientButtonListener(ActionEvent ae){
    186                 String type = "client";
    187                 ArrayList newResource = new ArrayList<ViewItem>();
    188                 ResourceInfo[] ri;
    189                 int i;
    190                 String s;
    191                 selectedObject = BeanUtil.getTypeProperties(type);
    192                 for (ViewItem vi : selectedObject){
    193                         vi.setRendererFlag(vi.getRenderer());
    194                         if (vi.getRenderer().equals("selectOneMenu")){
    195                                 SelectItem[] keyValueList;
    196                                 //TODO: implement getter for list of node types
    197                                 Client c = new Client();
    198                                 s = vi.getKey().replaceFirst(new Character(vi.getKey().charAt(0)).toString(),
    199                                                 new Character(Character.toUpperCase(vi.getKey().charAt(0))).toString());
    200                                
    201                                 ri = c.getListResources("bacula-dir", s);
    202                                 if (ri != null){
    203                                         keyValueList = new SelectItem[ri.length];
    204                                         i = 0;
    205                                         for (ResourceInfo rinfo : ri){
    206                                                 keyValueList[i] = new SelectItem();
    207                                                 keyValueList[i].setValue(rinfo.getResName());
    208                                                 keyValueList[i].setLabel(rinfo.getResName());
    209                                                 i++;
    210                                         }
    211                                         vi.setKeyValueList(keyValueList);
    212                                 }
    213                        
    214                         }
    215                         createResource = true;
    216                 }
    217                
    218                
    219         }*/
    220        
    221         /*public void newResourceButtonListener(ActionEvent ae){
    222                 DefaultMutableTreeNode node;
    223                 UserObjectItem userObject;
    224                 String Id = BeanUtil.getRequestParameter("userObject.ResId");
    225                 String value = BeanUtil.getRequestParameter("userObject.resName");
    226                 String shift = BeanUtil.getRequestParameter("ice.event.shift");
    227                 selectedObject = new ArrayList<ViewItem>();
    228                 System.out.println("value: "+value+" id: "+Id);
    229                
    230                 if (value.equals("")){
    231                         return;
    232                 }
    233                 //node = getNode(Id, tree);
    234                 node = getNodeByName(value, tree);
    235                 String type = ((UserObjectItem) ((UserObjectItemType) node
    236                                 .getUserObject()).getUserObject()).getResType();
    237                 ViewItem vi;
    238                 String[] val;
    239                 try{
    240                         //value contains the header of the subtree
    241                         String type2 = "de.dass_it.vanhelsing.gui.items." +  value + "Item";
    242                         Class newClass = Class.forName(type2);
    243                         for (Method m : newClass.getDeclaredMethods()){
    244                                 if (m.getName().startsWith("get")) {
    245                                         vi = new ViewItem();
    246                                         vi.setKey(m.getName().substring(3));
    247                                         vi.setRendererFlag(BeanUtil.getRenderer(type, vi.getKey()));
    248                                         if (vi.getSelectOneMenu() != null){
    249                                                 DefaultMutableTreeNode[] dmtn = getChildNodes(tree, vi.getKey());
    250                                                 if (dmtn != null) {
    251                                                         SelectItem[] si = new SelectItem[dmtn.length];
    252                                                         String objectType;
    253                                                         for (int i = 0; i < dmtn.length; i++){
    254                                                                 UserObjectItem nodeObject = ((UserObjectItemType)dmtn[i].getUserObject()).getUserObject();
    255                                                                 objectType = "de.dass_it.vanhelsing.gui.items." + vi.getKey() +"Item";
    256                                                                 Class subClass = Class.forName(objectType);
    257                                                                 Class myClass = nodeObject.getClass().asSubclass(subClass);
    258                                                                 Method o = myClass.getMethod("getName", (Class[])null);
    259                                                                 si[i] = new SelectItem((String)o.invoke(nodeObject, (Object[])null),
    260                                                                                 (String)o.invoke(nodeObject, (Object[])null));
    261                                                                
    262                                                         }
    263                                                         vi.setKeyValueList(si);
    264                                                 }
    265                                         }
    266                                         if (vi.getInputText() != null){
    267                                                 vi.setValue(BeanUtil.getProperty("director."+type+"."+vi.getKey()+".def"));
    268                                         }
    269                                 }
    270                         }
    271                 } catch (Exception e){
    272                         e.printStackTrace();
    273                 }
    274                
    275         }*/
    276         /**
    277          * **EXPERIMENTAL** returns type of the selected resource.
    278          * The method is used for an evaluation about dynamic navigation.
    279          * @param ae    ActionEvent contains relevant information about the jsf component tree.
    280          * @return viewName     name of the resource type of the selected data tree node       
    281          */
    282         /*public String newResourceListener(ActionEvent ae){
    283                 if (selectedObject != null && selectedObject.size() > 0){
    284                         String resType = selectedObject.get(0).getResType();
    285                         String viewName = BeanUtil.getAccessType(resType);
    286                         return viewName;
    287                 }
    288                 return "";
    289         }*/
    290        
     95        public void newResourceButtonListener(ActionEvent ae){
     96                String type = "Client";
     97                UserObjectItemFactory UOFactory = new UserObjectItemFactory();
     98                selectedObject = (ConcreteUserObjectItem)UOFactory.createUserObjectItem(type);
     99                for (ViewItem vi : selectedObject.getViewItemList()){
     100                        if(vi.getSelectOneMenu()){
     101                                vi.setKeyValueList(dataTree.getKeyValueList().get(vi.getKey()));
     102                        }
     103                        if (vi.getRadioGroup()){
     104                                vi.setKeyValueList(dataTree.getKeyValueList().get("trueFalse"));
     105                        }
     106                }
     107                createResource = true;
     108        }
     109
     110        public void newClientButtonListener(ActionEvent ae){
     111                newResourceButtonListener(ae);
     112        }
    291113        public void userObjectItemOptionSelected(ValueChangeEvent vce){
     114                System.err.println("vce.oldValue: " +vce.getOldValue()+" vce.newValue: "+vce.getNewValue());
    292115               
    293116        }
     
    302125                BeanUtil.setInfoMessage(null, "Diese Methode ist noch nicht implementiert.");
    303126        }
    304         /*public void saveClientButtonListener(ActionEvent ae){
    305                 Client c = new Client();
    306                 String name = "";
    307                 ResourceAttributeType[] rat = new ResourceAttributeType[selectedObject.size()];
    308                 int i =0;
    309                 for (ViewItem vi : selectedObject){
    310                         rat[i] = new ResourceAttributeType();
    311                         rat[i].setKey(vi.getKey());
    312                         rat[i].setValue(vi.getKeyValue());
    313                         i++;
    314                         if (vi.getKey().equals("name")){
    315                                 name = vi.getKeyValue();
    316                         }
    317 
    318                 }
    319                 int newResId = c.createSimpleResource(rat,
    320                                 c.makeResourceInfo("bacula-dir", 0, name, "Client")
    321                                 );
    322                 System.err.println(newResId);
    323         }*/
    324         /**
    325          * **EXPERIMENTAL** writes the selected resource to the data tree of the web service.
    326          *
    327          * @param ae    ActionEvent contains relevant information
    328          */
    329         /*public void saveButtonListener(ActionEvent ae) {
    330                 if (selectedObject == null){
    331                         BeanUtil.setInfoMessage(null, "bitte eine Resource zum Ändern auswählen");
    332                 } else {
     127        /**
     128         * save the currently selected object
     129         * @param ae
     130         */
     131        public void saveClientButtonListener(ActionEvent ae){
     132                if (createResource){
    333133                        Client c = new Client();
    334                         ResourceInfo ri = new ResourceInfo();
    335                         SetSimpleResourceResponse s2r2;
    336                         ri.setDirector( selectedObject.get(0).getDirector() );
    337                         ri.setResId( selectedObject.get(0).getResId() );
    338                         ri.setResName( selectedObject.get(0).getResName() );
    339                         ri.setResType( selectedObject.get(0).getResType() );
    340                         // ResourceAttribute
    341                         String key, value;
    342                         ResourceAttributeType[] ra = new ResourceAttributeType[selectedObject.size()];
    343                         for (int i = 0; i < selectedObject.size(); i++) {
    344                                 key = selectedObject.get(i).getKey();
    345                                 value = selectedObject.get(i).getKeyValue();
    346                                 ra[i] = new ResourceAttributeType();
    347                                 ra[i].setKey(key);
    348                                 ra[i].setValue(value);
    349                         }
    350                         ResourceInitialization rinit = new ResourceInitialization();
    351                         rinit.setResInfo(ri);
    352                         rinit.setResAttribute(ra);
    353                         rinit.setReplace(true);
    354                         s2r2 = c.setSimpleResource(rinit);
    355                         System.err.println("Status setSimpleRes: "+s2r2.getStatus());
    356                         BeanUtil.setErrorMessage(null, "Status setSimpleRessource: "+s2r2.getStatus());
    357                        
    358                         /*String status = s2r2.getStatus();
    359                         if (selectedObject.get(0) != null){
    360                                 selectedObject.get(0).setResId(s2r2.getResId());
    361                         }
    362                         // TODO: write ResId to selectedObject
    363                         // selectedObject.get(0).setResId(grt.getResId());
    364                         // valueChangeEffect.setFired(false);
    365                 }
    366         }*/
     134                        SimpleResource sr;
     135                        UserObjectItemFactory UOFactory = new UserObjectItemFactory();
     136                        for (ViewItem vi : selectedObject.getViewItemList()){
     137                                if(vi.getKey().equals("name")){
     138                                        selectedObject.setResName(vi.getKeyValue());
     139                                }
     140                        }
     141                        int newResId =
     142                                c.createSimpleResource(c.makeResAttrTypeArray(selectedObject.getViewItemList()),
     143                                        c.makeResourceInfo(selectedObject.getDirector(), selectedObject.getResId(),
     144                                                        selectedObject.getResName(), selectedObject.getResType()));
     145                        BeanUtil.setInfoMessage(null, "Neue Resource erzeugt (Id: "+newResId+")");
     146                        //neue Resource einlesen und in den Baum eintragen
     147                        //sr = c.getSimpleResource(selectedObject.getDirector(), newResId);
     148                        sr = new SimpleResource();
     149                        sr.setResourceAttributeType(c.makeResAttrTypeArray(selectedObject.getViewItemList()));
     150                        sr.setResourceInfo(c.makeResourceInfo(selectedObject.getDirector(), selectedObject.getResId(),
     151                                        selectedObject.getResName(), selectedObject.getResType()));
     152                        dataTree.createNode(dataTree.getNodeByName("Client"),
     153                                        UOFactory.createUserObjectItem(sr.getResourceAttributeType(),
     154                                                        sr.getResourceInfo()));
     155                        dataTree.updateUserObjects();
     156                }
     157        }
     158
    367159        /**
    368160         * Setter method for the tree attribute
Note: See TracChangeset for help on using the changeset viewer.