mlhim-specs-dev team mailing list archive
-
mlhim-specs-dev team
-
Mailing list archive
-
Message #00732
[Branch ~cdd-dev/cdd/trunk] Rev 258: Merged from the 2.0 development tree.
Merge authors:
Eduardo César (eduardo.cesar)
------------------------------------------------------------
revno: 258 [merge]
committer: Eduardo C. P. Ribeiro <eduardo.cesar@xxxxxxx>
branch nick: mirror
timestamp: Mon 2012-09-17 20:10:53 -0300
message:
Merged from the 2.0 development tree.
modified:
src/2.0/cdd.py
src/2.0/cdd.wxg
--
lp:cdd
https://code.launchpad.net/~cdd-dev/cdd/trunk
Your team MLHIM Specifications Developers is subscribed to branch lp:cdd.
To unsubscribe from this branch go to https://code.launchpad.net/~cdd-dev/cdd/trunk/+edit-subscription
=== modified file 'src/2.0/cdd.py'
--- src/2.0/cdd.py 2012-09-14 02:56:05 +0000
+++ src/2.0/cdd.py 2012-09-17 23:10:23 +0000
@@ -1381,6 +1381,8 @@
self.__do_layout()
# end wxGlade
+ self.init_things()
+
def __set_properties(self):
# begin wxGlade: ConfigDialog.__set_properties
self.SetTitle(_("Configuration"))
@@ -1423,6 +1425,95 @@
self.Layout()
# end wxGlade
+ def init_things(self):
+ self.init_config()
+ self.read_config()
+
+ # Binds the function to EVT_TIMER
+ self.Bind(wx.EVT_TIMER, self.timer_worker)
+
+ # Timer that calls a function at a regular time.
+ self.timer = wx.Timer(self)
+ time = int(self.config.get('DEFAULT', 'autosave'))
+ if time > 0:
+ self.timer.Start(time*100)
+
+ def update_values(self):
+ time = int(self.config.get('DEFAULT', 'autosave'))
+ if time > 0:
+ self.timer.Start(time*1000*60)
+
+ def timer_worker(self, event=None):
+ #TODO: Put the CDD automatic save routine here
+ pass
+
+
+ def init_config(self):
+ if sys.platform.startswith('linux'):
+ home = os.environ['HOME']
+ elif sys.platform.startswith('win'):
+ home = os.environ['HOMEDRIVE'] + '/' +os.environ['HOMEPATH']
+
+ else:
+ home = './'
+ self.configdir = home + '/.mlhim'
+ self.configname = self.configdir + '/' + 'cdg.cfg'
+
+ self.config = ConfigParser.SafeConfigParser({
+ 'autosave' : '5',
+ 'workspace' : home + '/' + 'MLHIM2'
+ })
+
+ if not os.path.isdir(self.configdir):
+ try:
+ os.mkdir(self.configdir)
+ except:
+ popup_message(None, 'Config directory NOT created.', 'Error creating config dir', wx.ICON_EXCLAMATION)
+
+
+ def read_config(self):
+ self.config.read(self.configname)
+ self.set_panel_configs()
+
+ def save_config(self):
+ #self.get_panel_configs()
+ try:
+ with open(self.configname, 'wb') as configfile:
+ configfile.write('# Concept Definition Designer Configuration\n# Do not edit the text to the left of the equal symbol (=)\n\n')
+ self.config.write(configfile)
+ except IOError:
+ popup_message(None, 'Config could not be saved.', 'Error saving config', wx.ICON_EXCLAMATION)
+
+
+ def get_panel_configs(self):
+ self.config.set('DEFAULT', 'autosave', self.text_ctrl_autosave.GetValue().encode('utf8'))
+ self.config.set('DEFAULT', 'workspace', self.text_ctrl_workspace.GetValue().encode('utf8'))
+
+ def set_panel_configs(self):
+ self.text_ctrl_autosave.SetValue(self.config.get('DEFAULT', 'autosave'))
+ self.text_ctrl_workspace.SetValue(self.config.get('DEFAULT', 'workspace'))
+
+
+ def test_workspace_dir(self, panel):
+ workspace = self.config.get('DEFAULT', 'workspace')
+ if not os.path.exists(workspace):
+ dlg = wx.TextEntryDialog(panel, 'Please choose the workpspace directory.',
+ 'Workspace', defaultValue=workspace)
+ result = dlg.ShowModal()
+ if result == wx.ID_OK:
+ workspace = dlg.GetValue()
+ self.config.set('DEFAULT', 'workspace', workspace)
+ self.set_panel_configs()
+ self.save_config()
+ if not os.path.isdir(workspace):
+ try:
+ os.mkdir(workspace)
+ except OSError:
+ popup_message(None, 'Workspace directory NOT created.', 'Error creating workspace dir', wx.ICON_EXCLAMATION)
+
+
+ dlg.Destroy()
+
# end of class ConfigDialog
class MetadataPanel(wx.Panel):
@@ -1725,6 +1816,8 @@
self.Bind(wx.EVT_MENU, self.export_xform, id=210)
self.Bind(wx.EVT_MENU, self.file_validate, id=60)
self.Bind(wx.EVT_MENU, self.file_quit, id=80)
+ self.Bind(wx.EVT_MENU, self.edit_undo, id=100)
+ self.Bind(wx.EVT_MENU, self.edit_redo, id=110)
self.Bind(wx.EVT_MENU, self.project_new, id=130)
self.Bind(wx.EVT_MENU, self.config_options, id=150)
self.Bind(wx.EVT_MENU, self.config_save, id=160)
@@ -1774,10 +1867,19 @@
# end wxGlade
def init_things(self):
+
+ # Makes a config dialog
+ self.config_dialog = ConfigDialog(self)
+ self.config_dialog.test_workspace_dir(self)
+
+ # Setup the tree
self.setup_tree()
+
+ # Setup the metadata
self.setup_metadata()
self.button_ok.Hide()
+
def setup_metadata(self):
# Hack to make the metadata panel before it is called
# We need to make it before to be able to get the info from it
@@ -1991,38 +2093,54 @@
def evt_tree_delete_item(self, event): # wxGlade: MainFrame.<event_handler>
pass
def file_new(self, event): # wxGlade: MainFrame.<event_handler>
+ not_implemented_diag(self)
print "Event handler `file_new' not implemented"
event.Skip()
def file_open(self, event): # wxGlade: MainFrame.<event_handler>
+ not_implemented_diag(self)
print "Event handler `file_open' not implemented"
event.Skip()
def file_save(self, event): # wxGlade: MainFrame.<event_handler>
+ not_implemented_diag(self)
print "Event handler `file_save' not implemented"
event.Skip()
def file_save_as(self, event): # wxGlade: MainFrame.<event_handler>
+ not_implemented_diag(self)
print "Event handler `file_save_as' not implemented"
event.Skip()
def file_validate(self, event): # wxGlade: MainFrame.<event_handler>
+ not_implemented_diag(self)
print "Event handler `file_validate' not implemented"
event.Skip()
def file_quit(self, event): # wxGlade: MainFrame.<event_handler>
- print "Event handler `file_quit' not implemented"
- event.Skip()
+ dlg = wx.MessageDialog(self,
+ _("Are you sure you want to exit?"),
+ _("Quit Editor"), wx.OK|wx.CANCEL|wx.ICON_QUESTION)
+ result = dlg.ShowModal()
+ dlg.Destroy()
+ if result == wx.ID_OK:
+ self.Close(force=True)
def project_new(self, event): # wxGlade: MainFrame.<event_handler>
+ not_implemented_diag(self)
print "Event handler `project_new' not implemented"
event.Skip()
def config_options(self, event): # wxGlade: MainFrame.<event_handler>
- print "Event handler `config_options' not implemented"
- event.Skip()
+ result = self.config_dialog.ShowModal()
+ if result == wx.ID_OK:
+ self.config_dialog.get_panel_configs()
+ self.config_dialog.save_config()
+ self.config_dialog.update_values()
+
def config_save(self, event): # wxGlade: MainFrame.<event_handler>
+ not_implemented_diag(self)
print "Event handler `config_save' not implemented"
event.Skip()
@@ -2063,9 +2181,20 @@
popup_message(self, '%s.xsd' % info.ccd_id, _('Generated the file'), wx.OK | wx.ICON_INFORMATION)
def export_xform(self, event): # wxGlade: MainFrame.<event_handler>
+ not_implemented_diag(self)
print "Event handler `export_xform' not implemented"
event.Skip()
+ def edit_undo(self, event): # wxGlade: MainFrame.<event_handler>
+ not_implemented_diag(self)
+ print "Event handler `edit_undo' not implemented"
+ event.Skip()
+
+ def edit_redo(self, event): # wxGlade: MainFrame.<event_handler>
+ not_implemented_diag(self)
+ print "Event handler `edit_redo' not implemented"
+ event.Skip()
+
# end of class MainFrame
# This class holds the XSD file that will be created.
@@ -2294,6 +2423,9 @@
return False
+def not_implemented_diag(self):
+ popup_message(self, 'Not implemented yet.', 'Under construction', wx.ICON_INFORMATION | wx.OK)
+
info = Info()
if __name__ == "__main__":
=== modified file 'src/2.0/cdd.wxg'
--- src/2.0/cdd.wxg 2012-09-11 22:49:55 +0000
+++ src/2.0/cdd.wxg 2012-09-17 23:10:23 +0000
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- generated by wxGlade 0.6.4 on Tue Sep 11 19:48:56 2012 -->
+<!-- generated by wxGlade 0.6.4 on Mon Sep 17 20:08:46 2012 -->
<application path="cdd.py" name="" class="" option="0" language="python" top_window="dialog_config" encoding="UTF-8" use_gettext="1" overwrite="0" use_new_namespace="1" for_version="2.8" is_template="0" indent_amount="4" indent_symbol="space" source_extension=".cpp" header_extension=".h">
<object class="MainFrame" name="frame_main" base="EditFrame">
@@ -58,10 +58,12 @@
<item>
<label>&Undo\tCtrl-Z</label>
<id>100</id>
+ <handler>edit_undo</handler>
</item>
<item>
<label>&Redo\tCtrl-Y</label>
<id>110</id>
+ <handler>edit_redo</handler>
</item>
</menu>
<menu name="" itemid="120" label="&Project">
@@ -2721,4 +2723,159 @@
</object>
</object>
</object>
+ <object class="ConfigDialog" name="dialog_config" base="EditDialog">
+ <style>wxDEFAULT_DIALOG_STYLE</style>
+ <title>Configuration</title>
+ <size>629, 205</size>
+ <object class="wxBoxSizer" name="sizer_13" base="EditBoxSizer">
+ <orient>wxHORIZONTAL</orient>
+ <object class="sizeritem">
+ <border>0</border>
+ <option>0</option>
+ <object class="spacer" name="spacer" base="EditSpacer">
+ <height>20</height>
+ <width>20</width>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <flag>wxEXPAND</flag>
+ <border>0</border>
+ <option>1</option>
+ <object class="wxBoxSizer" name="sizer_14" base="EditBoxSizer">
+ <orient>wxVERTICAL</orient>
+ <object class="sizeritem">
+ <border>0</border>
+ <option>0</option>
+ <object class="spacer" name="spacer" base="EditSpacer">
+ <height>20</height>
+ <width>20</width>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <flag>wxEXPAND</flag>
+ <border>0</border>
+ <option>1</option>
+ <object class="wxBoxSizer" name="sizer_main" base="EditBoxSizer">
+ <orient>wxVERTICAL</orient>
+ <object class="sizeritem">
+ <flag>wxEXPAND</flag>
+ <border>0</border>
+ <option>1</option>
+ <object class="wxBoxSizer" name="sizer_2" base="EditBoxSizer">
+ <orient>wxHORIZONTAL</orient>
+ <object class="sizeritem">
+ <flag>wxEXPAND</flag>
+ <border>7</border>
+ <option>1</option>
+ <object class="wxStaticBoxSizer" name="sizer_9" base="EditStaticBoxSizer">
+ <orient>wxHORIZONTAL</orient>
+ <label>Workspace path:</label>
+ <object class="sizeritem">
+ <border>0</border>
+ <option>1</option>
+ <object class="wxTextCtrl" name="text_ctrl_workspace" base="EditTextCtrl">
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <flag>wxEXPAND</flag>
+ <border>0</border>
+ <option>1</option>
+ <object class="wxBoxSizer" name="sizer_11" base="EditBoxSizer">
+ <orient>wxHORIZONTAL</orient>
+ <object class="sizeritem">
+ <flag>wxEXPAND</flag>
+ <border>0</border>
+ <option>0</option>
+ <object class="wxStaticBoxSizer" name="sizer_12" base="EditStaticBoxSizer">
+ <orient>wxHORIZONTAL</orient>
+ <label>Autosave:</label>
+ <object class="sizeritem">
+ <border>0</border>
+ <option>0</option>
+ <object class="wxTextCtrl" name="text_ctrl_autosave" base="EditTextCtrl">
+ <tooltip>Put the interval in minutes that the current CDD will be automatically saved.</tooltip>
+ <size>70, 27</size>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <flag>wxEXPAND</flag>
+ <border>0</border>
+ <option>1</option>
+ <object class="spacer" name="spacer" base="EditSpacer">
+ <height>20</height>
+ <width>20</width>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <flag>wxEXPAND</flag>
+ <border>0</border>
+ <option>1</option>
+ <object class="wxBoxSizer" name="sizer_10" base="EditBoxSizer">
+ <orient>wxHORIZONTAL</orient>
+ <object class="sizeritem">
+ <border>0</border>
+ <option>1</option>
+ <object class="spacer" name="spacer" base="EditSpacer">
+ <height>20</height>
+ <width>20</width>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <flag>wxBOTTOM|wxALIGN_BOTTOM</flag>
+ <border>0</border>
+ <option>0</option>
+ <object class="wxButton" name="button_2" base="EditButton">
+ <stockitem>CANCEL</stockitem>
+ <label>&Cancel</label>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <border>0</border>
+ <option>0</option>
+ <object class="spacer" name="spacer" base="EditSpacer">
+ <height>20</height>
+ <width>20</width>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <flag>wxBOTTOM|wxALIGN_BOTTOM</flag>
+ <border>0</border>
+ <option>0</option>
+ <object class="wxButton" name="button_1" base="EditButton">
+ <stockitem>OK</stockitem>
+ <label>&OK</label>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <border>0</border>
+ <option>0</option>
+ <object class="spacer" name="spacer" base="EditSpacer">
+ <height>20</height>
+ <width>20</width>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="sizeritem">
+ <border>0</border>
+ <option>0</option>
+ <object class="spacer" name="spacer" base="EditSpacer">
+ <height>20</height>
+ <width>20</width>
+ </object>
+ </object>
+ </object>
+ </object>
</application>