Changeset 7485

Show
Ignore:
Timestamp:
05/06/08 09:03:42 (7 years ago)
Author:
stedwar2
Message:
 
Location:
ossiedev/branches/jsnyder/ComponentProject/src/edu/vt/ossie/wavedev
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • ossiedev/branches/jsnyder/ComponentProject/src/edu/vt/ossie/wavedev/Component.java

    r7482 r7485  
    11package edu.vt.ossie.wavedev; 
    22 
     3import org.python.core.PyException; 
    34import org.python.core.PyList; 
    45import org.python.core.PyObject; 
     
    3536    public PyList getChildren() 
    3637    { 
    37         return getPorts(); 
     38        return isDevice() 
     39            ? getAssignedComponents() 
     40            : getPorts(); 
     41    } 
     42 
     43 
     44    // ---------------------------------------------------------- 
     45    @Override 
     46    public boolean allowChildrenToExpand() 
     47    { 
     48        // Don't let components allocated to a device be expandable 
     49        return isDevice() 
     50            ? false 
     51            : super.allowChildrenToExpand(); 
    3852    } 
    3953 
     
    4458        // Should this check to see if "device" is found in the type? 
    4559        return !"resource".equals(getType()); 
     60    } 
     61 
     62 
     63    // ---------------------------------------------------------- 
     64    public void assignToDevice(Component device) 
     65    { 
     66        System.out.println( 
     67            "assignToDevice: " + this + "(" + isDevice() + ") -> " + device); 
     68        if (!isDevice()) 
     69        { 
     70            // First, remove from old device 
     71            Component oldDevice = getDevice(); 
     72            if (oldDevice != null) 
     73            { 
     74                try 
     75                { 
     76                    oldDevice.getAssignedComponents().remove(pyObject()); 
     77                } 
     78                catch (PyException e) 
     79                { 
     80                    // object was not in list 
     81                } 
     82            } 
     83 
     84            // Now add to new device 
     85            setDevice(device); 
     86            setNode(device.getNode()); 
     87            device.getAssignedComponents().append(pyObject()); 
     88        } 
     89    } 
     90 
     91 
     92    // ---------------------------------------------------------- 
     93    public PyList getAssignedComponents() 
     94    { 
     95        if (!hasAttribute(ASSIGNED_COMPONENTS)) 
     96        { 
     97            setAssignedComponents(new PyList()); 
     98        } 
     99        return getList(ASSIGNED_COMPONENTS); 
     100    } 
     101 
     102 
     103    // ---------------------------------------------------------- 
     104    public void setAssignedComponents(PyList components) 
     105    { 
     106        put(ASSIGNED_COMPONENTS, components); 
    46107    } 
    47108 
     
    131192    public void setDevice(Component device) 
    132193    { 
    133         put(DEVICE, device.pyObject()); 
     194        put(DEVICE, device); 
    134195    } 
    135196 
     
    145206    public void setNode(Node node) 
    146207    { 
    147         put(NODE, node.pyObject()); 
     208        put(NODE, node); 
    148209    } 
    149210 
     
    237298    private static final String UUID                = "uuid"; 
    238299 
    239  
    240 //    self.uuid = uuidgen() 
     300    private static final String ASSIGNED_COMPONENTS = "xAssignedComponents"; 
     301 
    241302//    self.file_uuid = uuidgen() 
    242303//    self.ace = False 
  • ossiedev/branches/jsnyder/ComponentProject/src/edu/vt/ossie/wavedev/Node.java

    r7482 r7485  
    7373 
    7474    // ---------------------------------------------------------- 
     75    public void EnsureDevicesAreParented() 
     76    { 
     77        for (Component c : getDevicesAsArray()) 
     78        { 
     79            c.setNode(this); 
     80        } 
     81    } 
     82 
     83 
     84    // ---------------------------------------------------------- 
    7585    public void addNewDevice(Component template, Component after) 
    7686    { 
     87        Component copy = (Component)factory().wrap(template.deepcopy()); 
     88        copy.setNode(this); 
    7789        addAfter( 
    7890            getDevices(), 
    79             template.deepcopy(), 
     91            copy.pyObject(), 
    8092            (after == null) 
    8193                ? null 
  • ossiedev/branches/jsnyder/ComponentProject/src/edu/vt/ossie/wavedev/Platform.java

    r7482 r7485  
    6262    public void addNewNode(Node template, Node after) 
    6363    { 
     64        Node copy = (Node)factory().wrap(template.deepcopy()); 
     65        copy.EnsureDevicesAreParented(); 
    6466        addAfter( 
    6567            getNodes(), 
    66             template.deepcopy(), 
     68            copy.pyObject(), 
    6769            (after == null) 
    6870                ? null 
  • ossiedev/branches/jsnyder/ComponentProject/src/edu/vt/ossie/wavedev/PyWrapper.java

    r7482 r7485  
    211211     * @param value The new value for the attribute 
    212212     */ 
     213    public void put(String attribute, PyWrapper value) 
     214    { 
     215        try 
     216        { 
     217            pyObject().__setattr__(attribute, 
     218                value == null ? Py.None : value.pyObject()); 
     219        } 
     220        catch (Exception e) 
     221        { 
     222            e.printStackTrace(); 
     223        } 
     224    } 
     225 
     226 
     227    // ---------------------------------------------------------- 
     228    /** 
     229     * Set an attribute in the object. 
     230     * @param attribute The name of the attribute to set 
     231     * @param value The new value for the attribute 
     232     */ 
    213233    public void put(String attribute, PyObject value) 
    214234    { 
    215235        try 
    216236        { 
    217             pyObject().__setattr__(attribute, value); 
     237            pyObject().__setattr__(attribute, value == null ? Py.None : value); 
    218238        } 
    219239        catch (Exception e)