Changeset 1142

Show
Ignore:
Timestamp:
02/28/07 22:43:32 (2 years ago)
Author:
arjanmol
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • gaphor/trunk/TODO

    r1141 r1142  
    2424   !!! Create some example diagrams, 
    2525 
     26 - get rid of resource(). Create an Application instance instead (should 
     27   make unit testing easier too). 
     28   This should get rid of the pseudo singletons (_default* instances per module) 
     29    
    2630 - using stereotypes 
    2731 - components and stuff 
     
    3337 - Use actions only for action definitions. use Events for notification 
    3438   between actions. 
     39    * use zope.component.event for centralized event notification. 
     40  
     41 - use GTK's UIManager for menu management. 
     42    * figure out naming conventions, also for diagram item popup menus. 
     43    *  
     44 
     45- Copy/Paste for diagramitems 
     46  - How to do a copy/paste? shallow copy or deep copy? -> just create a diagram 
     47    item item referening the same model element or also copy the model element? 
     48    I think we should stick with shallow copy for now. 
    3549 
    3650 - namedelement.py: from NamedElement 
     
    4256 - Use setuptools (pkg_resources) to load plugins. 
    4357   Maybe define stuff in terms of services, like PIDA does (pida.org?) 
     58 
     59 - In some cases (like when editing attributes) Enter should be used to 
     60   complete the edit action. 
    4461 
    4562Older (long term ;) todo items: 
     
    5774   Zope classes are quite optimized. However, mainly provides the same 
    5875   functionality as Actions, but not as fine grained. 
     76   Use zope.component.events for all notification! 
    5977 
    6078- Add meta data (such as text alignment) to the model file (add a meta: 
     
    6381- Fix namespace relations between Lifeline and Interaction and Message and 
    6482  Interaction 
    65  
    66 - Allow to make Action objects, instead of defining classes. 
    67   Should use meta-classes for registration too (define __abstract__ or\something to prevent registration). 
    6883 
    6984- disable actions when editing. 
     
    7691  them into other models. 
    7792 
    78 - How to figure out if a module exists without loading it? 
     93- How to figure out if a module exists without loading it? Solved by setuptools 
    7994 
    8095- Exporting diagrams to UML XMI (work in progress), 
    8196  code, images (SVG/png), etc. - make a plugin! 
    8297 
    83 - fix accelarators (HOW?), partially done, accelerators on items in popup menus 
    84   does not work. 
    85   Accelerators should be activated by the (Abstract)Window, should not depend 
    86   on menu items. Intercept Window::key_pressed_event and let it handle 
    87   popup menu actions. 
    88  
    89 - In some cases (like when editing attributes) Enter should be used to 
    90   complete the edit action. 
    91  
    9298- Create a good algorithm for placement of lines and maybe nodes too. 
    93  
    94 - Use default GTK+ menu classes, in stead of the home-brew one. 
    95  
    96 - Use GTK+ 2.4 UIManager and ActionGroups (?): 
    97   * Reconsider since GTK+ 2.8 bindings are fairly better than the 2.4 bindings 
    98   . We have to keep the gaphor.misc.action module intact. 
    99   . As far as I can see, cross action updates, are not supported. 
    100   . Properties can be mapped in a straightforward way. 
    101   . Should actions be split up: one for the main window, one group per 
    102     diagram and one group per item type? 
    103   . GtkUIManager looks useful, some structures in Gaphor may have to be 
    104     reconsidered. What to do with AccelMaps for example. (I really have 
    105     to read the tutorial some day ;-). 
    106   . The current structure is simple and quite Pythonic. It should be this way. 
    107   . Stuff like a recent-file box will be easier to create (I guess). 
    108   Previous conclusion: keep using the gaphor.misc.action code 
    10999 
    110100- Automatically draw relations when an item is DND-ed from the tree-view 
    111101  to the diagram. 
    112  
    113 - Copy/Paste for diagramitems 
    114   - in order to make copy/paste work, the load/save functions should be 
    115     generatlised to allow a subset to be saved/loaded (which is needed 
    116     anyway for exporting/importing stereotype Profiles). 
    117   - How many data should be saved? (e.g. we copy a diagram item, remove it 
    118     (the underlaying UML element is removed) and the paste the copied item. 
    119     The diagram should act as if we have placed a copy of the removed item 
    120     on the canvas and make the uml element visible again. 
    121  
    122 - Undo/redo functionality 
    123102 
    124103#- Stereotypes: check documentation page 581 (597 absolute). Fixed. An extra 
     
    131110functinality should be provided for those. 
    132111 
    133 - Deployment diagram: 
    134   . Node 
    135   . Artifact 
    136   . some relations 
    137112- Sequence diagram: 
    138113  . Life line 
  • gaphor/trunk/doc/undo.txt

    r1137 r1142  
    4343 
    4444  Canvas: 
    45     add() 
    46     remove() 
     45    tree: 
     46      add() 
     47      remove() 
    4748    request_update() (should be performed as part of undo action when called) 
    4849 
    4950  Solver (?): 
    50     adding and removing constraints 
     51    add_constraint() 
     52    remove_constraint() 
     53    Variable state 
    5154 
    5255  In Gaphor, connecting two diagram items is considered an atomic task, 
     
    5457  tasks (properties set and a constraint created). 
    5558 
     59  For methods, it should be possible to create a decorator (@reversable) that 
     60  schedules a method with the same signature as the calling operation, but with 
     61  the inverse effect (e.g. the gaphas.tree module): 
     62 
     63  Tree(object): 
     64 
     65    @reversable(lambda s, n, p: s.remove(n)) 
     66    def add(self, node, parent=None): 
     67        ... add  
     68 
     69    @reversable(add, self='self', node='node', parent='self.get_parent(node)') 
     70    def remove(self, node): 
     71        ... remove 
     72 
     73 Okay, so the second case is toucher... 
     74  
     75  
    5676We have three options: 
    5777 
  • gaphor/trunk/utils/command/build_mo.py

    r1141 r1142  
    3636            self.set_undefined_options('build', 
    3737                                       ('build_base', 'build_dir')) 
    38             self.build_dir = os.path.join(self.build_dir, 'linguas') 
     38            self.build_dir = os.path.join(self.build_dir, 'locale') 
    3939 
    4040        self.all_linguas = self.all_linguas.split(',')