mlhim-specs-dev team mailing list archive
-
mlhim-specs-dev team
-
Mailing list archive
-
Message #00798
[Branch ~cdd-dev/cdd/trunk] Rev 308: Removal of info module and change in metadata
------------------------------------------------------------
revno: 308
committer: Eduardo Ribeiro <xcesar@xxxxxxxxx>
branch nick: devel
timestamp: Fri 2013-02-01 17:08:51 -0200
message:
Removal of info module and change in metadata
removed:
src/2.0/info.py
modified:
src/2.0/cdd.py
src/2.0/cdd.wxg
src/2.0/cdd_gui.py
src/2.0/config.py
src/2.0/metadata.py
--
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 2013-02-01 18:06:52 +0000
+++ src/2.0/cdd.py 2013-02-01 19:08:51 +0000
@@ -34,6 +34,16 @@
import cdd_gui
from aux_gui import *
+import metadata
+MetadataPanel = metadata.MetadataPanel
+
+import config
+ConfigDialog = config.ConfigDialog
+
+from container import container
+
+UnderConstruction = cdd_gui.UnderConstruction
+
class MainFrame(cdd_gui.MainFrame):
def __init__(self, *args, **kwds):
cdd_gui.MainFrame.__init__(self, *args, **kwds)
@@ -49,16 +59,6 @@
self.setup_metadata()
self.button_ok.Hide()
- # DEBUG and TEST purposes - generate a ccd with default configs in the current dir if the 1st argument is -g
- # try:
- if len(sys.argv) > 1 and sys.argv[1] == '-g':
- info.randomize_uuid()
- info.get_defin_type(self.get_definition_child())
- info.generate_file('.')
- self.Destroy()
- # except:
- # pass
-
self.tree_ctrl_ccd.SelectItem(self.metadata_item)
def get_definition_child(self):
@@ -72,10 +72,6 @@
self.config_dialog.test_workspace_dir(self)
- self.config_dialog.info = info
- self.config_dialog.set_config_info()
-
-
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
@@ -83,8 +79,6 @@
self.dummy_panel = wx.Panel(self, -1)
self.dummy_panel.Hide()
self.metadata = MetadataPanel(self.dummy_panel)
- self.metadata.info = info
- self.metadata.set_meta_info()
#self.metadata.Destroy()
#self.dummy_panel.Destroy()
@@ -165,10 +159,6 @@
self.metadata.SetClientSize(self.metadata.GetParent().GetSize())
#choice = MetadataPanel(self.panel_top_right)
- # Necessary for exporting the metadata
- self.metadata.info = info
- #choice.info = info
-
elif selText == "definition":
#self.display.SetLabel("definition selected.")
@@ -372,7 +362,7 @@
os.startfile(doc)
def help_about(self, event): # wxGlade: MainFrame.<event_handler>
- # First we create and fill the info object
+ # First we create and fill the information object
about = wx.AboutDialogInfo()
about.Name = "CDD (aka. CCD Editor)"
#about.Version = cdd_version.VERSION
@@ -390,16 +380,7 @@
def export_xsd(self, event): # wxGlade: MainFrame.<event_handler>
- # Get the path
- path = get_path(self)
- if not path:
- return
- info.randomize_uuid()
- info.get_defin_type(self.get_definition_child())
- info.generate_file(path)
-
- # Show dialog
- popup_message(self, '%s.xsd' % info.ccd_id, _('Generated the file'), wx.OK | wx.ICON_INFORMATION)
+ not_implemented_diag(self)
def export_xform(self, event): # wxGlade: MainFrame.<event_handler>
not_implemented_diag(self)
@@ -483,10 +464,8 @@
return True
return False
- # Relies in default name defined in GUI
def set_lang(self):
- self.choice_language.SetItems(get_lang_list())
- self.choice_language.SetSelection(get_lang_list().index(info.language) | 0)
+ self.choice_language.SetSelection(int(self.top_panel.metadata.language) | 0)
# Relies in default name defined in GUI
def evt_radiobox_language(self, event): # wxGlade: DvCodedString.<event_handler>
@@ -1290,20 +1269,6 @@
# end of class CareEntry
-UnderConstruction = cdd_gui.UnderConstruction
-
-import metadata
-MetadataPanel = metadata.MetadataPanel
-
-import config
-ConfigDialog = config.ConfigDialog
-
-# Object that retains all information necessary to create the cdd
-import info
-info = info.Info()
-
-from container import container
-
if __name__ == "__main__":
import gettext
gettext.install("app") # replace with the appropriate catalog name
=== modified file 'src/2.0/cdd.wxg'
--- src/2.0/cdd.wxg 2013-01-30 14:24:46 +0000
+++ src/2.0/cdd.wxg 2013-02-01 19:08:51 +0000
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- generated by wxGlade 0.6.5 on Wed Jan 30 06:54:16 2013 -->
+<!-- generated by wxGlade 0.6.5 on Fri Feb 1 13:02:37 2013 -->
<application path="cdd_gui.py" name="" class="" option="0" language="python" top_window="dialog_config" encoding="UTF-8" use_gettext="1" overwrite="1" 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">
@@ -2082,7 +2082,7 @@
</object>
<object class="MetadataPanel" name="panel_metadata" base="EditTopLevelPanel">
<style>wxTAB_TRAVERSAL</style>
- <size>685, 585</size>
+ <size>691, 714</size>
<object class="wxBoxSizer" name="sizer_vertical" base="EditBoxSizer">
<orient>wxHORIZONTAL</orient>
<object class="sizeritem">
@@ -2120,9 +2120,6 @@
<border>1</border>
<option>1</option>
<object class="wxTextCtrl" name="text_ctrl_title" base="EditTextCtrl">
- <events>
- <handler event="EVT_TEXT">enable_ok</handler>
- </events>
</object>
</object>
<object class="sizeritem">
@@ -2174,9 +2171,6 @@
<option>1</option>
<object class="wxTextCtrl" name="text_ctrl_description" base="EditTextCtrl">
<style>wxTE_MULTILINE</style>
- <events>
- <handler event="EVT_TEXT">enable_ok</handler>
- </events>
</object>
</object>
<object class="sizeritem">
@@ -2204,9 +2198,6 @@
<selection>0</selection>
<choices>
</choices>
- <events>
- <handler event="EVT_CHOICE">enable_ok</handler>
- </events>
<extraproperties>
<property name="items">get_lang_list()</property>
<property name="selection">get_lang_list().index('en-US') | 0</property>
@@ -2236,9 +2227,6 @@
<option>1</option>
<object class="wxTextCtrl" name="text_ctrl_subject" base="EditTextCtrl">
<tooltip>Format emails as: Timothy W. Cook <timothywayne.cook@xxxxxxxxx></tooltip>
- <events>
- <handler event="EVT_TEXT">enable_ok</handler>
- </events>
</object>
</object>
</object>
@@ -2265,9 +2253,6 @@
<option>1</option>
<object class="wxTextCtrl" name="text_ctrl_creator" base="EditTextCtrl">
<tooltip>Format emails as: Timothy W. Cook <timothywayne.cook@xxxxxxxxx></tooltip>
- <events>
- <handler event="EVT_TEXT">enable_ok</handler>
- </events>
</object>
</object>
<object class="sizeritem">
@@ -2292,9 +2277,6 @@
<border>1</border>
<option>1</option>
<object class="wxTextCtrl" name="text_ctrl_creator_email" base="EditTextCtrl">
- <events>
- <handler event="EVT_TEXT">enable_ok</handler>
- </events>
</object>
</object>
<object class="sizeritem">
@@ -2327,9 +2309,6 @@
<border>1</border>
<option>1</option>
<object class="wxTextCtrl" name="text_ctrl_source" base="EditTextCtrl">
- <events>
- <handler event="EVT_TEXT">enable_ok</handler>
- </events>
</object>
</object>
<object class="sizeritem">
@@ -2355,9 +2334,6 @@
<option>1</option>
<object class="wxTextCtrl" name="text_ctrl_publisher" base="EditTextCtrl">
<tooltip>Format emails as: Timothy W. Cook <timothywayne.cook@xxxxxxxxx></tooltip>
- <events>
- <handler event="EVT_TEXT">enable_ok</handler>
- </events>
</object>
</object>
</object>
@@ -2382,9 +2358,6 @@
<border>1</border>
<option>1</option>
<object class="wxTextCtrl" name="text_ctrl_rights" base="EditTextCtrl">
- <events>
- <handler event="EVT_TEXT">enable_ok</handler>
- </events>
</object>
</object>
</object>
@@ -2409,9 +2382,6 @@
<border>1</border>
<option>1</option>
<object class="wxTextCtrl" name="text_ctrl_relation" base="EditTextCtrl">
- <events>
- <handler event="EVT_TEXT">enable_ok</handler>
- </events>
</object>
</object>
<object class="sizeritem">
@@ -2436,9 +2406,6 @@
<border>1</border>
<option>1</option>
<object class="wxTextCtrl" name="text_ctrl_coverage" base="EditTextCtrl">
- <events>
- <handler event="EVT_TEXT">enable_ok</handler>
- </events>
</object>
</object>
</object>
@@ -2465,9 +2432,6 @@
<option>1</option>
<object class="wxTextCtrl" name="text_ctrl_contributors" base="EditTextCtrl">
<tooltip>Separate multiple contributors with a semi-colon and format them as:Eduardo Cesar <xcesar@xxxxxxxxx>; Luciana Cavalini <lutricav@xxxxxxxxx></tooltip>
- <events>
- <handler event="EVT_TEXT">enable_ok</handler>
- </events>
</object>
</object>
</object>
@@ -2479,6 +2443,14 @@
<object class="wxBoxSizer" name="sizer_2_copy" base="EditBoxSizer">
<orient>wxHORIZONTAL</orient>
<object class="sizeritem">
+ <flag>wxALIGN_BOTTOM</flag>
+ <border>0</border>
+ <option>0</option>
+ <object class="wxButton" name="button_set_default" base="EditButton">
+ <label>Set default</label>
+ </object>
+ </object>
+ <object class="sizeritem">
<flag>wxEXPAND</flag>
<border>1</border>
<option>1</option>
@@ -2492,12 +2464,7 @@
<border>0</border>
<option>0</option>
<object class="wxButton" name="button_ok" base="EditButton">
- <stockitem>SAVE</stockitem>
- <label>&Save</label>
- <disabled>1</disabled>
- <events>
- <handler event="EVT_BUTTON">save_config</handler>
- </events>
+ <stockitem>OK</stockitem>
</object>
</object>
</object>
=== modified file 'src/2.0/cdd_gui.py'
--- src/2.0/cdd_gui.py 2013-01-30 14:24:46 +0000
+++ src/2.0/cdd_gui.py 2013-02-01 19:08:51 +0000
@@ -1158,29 +1158,16 @@
self.text_ctrl_coverage = wx.TextCtrl(self, -1, "")
self.label_contributors = wx.StaticText(self, -1, _("Contributors: "))
self.text_ctrl_contributors = wx.TextCtrl(self, -1, "")
- self.button_ok = wx.Button(self, wx.ID_SAVE, "")
+ self.button_set_default = wx.Button(self, -1, _("Set default"))
+ self.button_ok = wx.Button(self, wx.ID_OK, "")
self.__set_properties()
self.__do_layout()
-
- self.Bind(wx.EVT_TEXT, self.enable_ok, self.text_ctrl_title)
- self.Bind(wx.EVT_TEXT, self.enable_ok, self.text_ctrl_description)
- self.Bind(wx.EVT_CHOICE, self.enable_ok, self.choice_lang)
- self.Bind(wx.EVT_TEXT, self.enable_ok, self.text_ctrl_subject)
- self.Bind(wx.EVT_TEXT, self.enable_ok, self.text_ctrl_creator)
- self.Bind(wx.EVT_TEXT, self.enable_ok, self.text_ctrl_creator_email)
- self.Bind(wx.EVT_TEXT, self.enable_ok, self.text_ctrl_source)
- self.Bind(wx.EVT_TEXT, self.enable_ok, self.text_ctrl_publisher)
- self.Bind(wx.EVT_TEXT, self.enable_ok, self.text_ctrl_rights)
- self.Bind(wx.EVT_TEXT, self.enable_ok, self.text_ctrl_relation)
- self.Bind(wx.EVT_TEXT, self.enable_ok, self.text_ctrl_coverage)
- self.Bind(wx.EVT_TEXT, self.enable_ok, self.text_ctrl_contributors)
- self.Bind(wx.EVT_BUTTON, self.save_config, self.button_ok)
# end wxGlade
def __set_properties(self):
# begin wxGlade: MetadataPanel.__set_properties
- self.SetSize((685, 585))
+ self.SetSize((691, 714))
self.label_date.SetToolTipString(_("Defalts to current day."))
self.datepicker_ctrl_date.SetMinSize((111, 28))
self.choice_lang.SetItems(get_lang_list())
@@ -1191,7 +1178,6 @@
self.text_ctrl_publisher.SetToolTipString(_("Format emails as: Timothy W. Cook <timothywayne.cook@xxxxxxxxx>"))
self.label_contributors.SetToolTipString(_("Separate multiple contributors with a semi-colon and format them as:Eduardo Cesar <xcesar@xxxxxxxxx>; Luciana Cavalini <lutricav@xxxxxxxxx>"))
self.text_ctrl_contributors.SetToolTipString(_("Separate multiple contributors with a semi-colon and format them as:Eduardo Cesar <xcesar@xxxxxxxxx>; Luciana Cavalini <lutricav@xxxxxxxxx>"))
- self.button_ok.Enable(False)
# end wxGlade
def __do_layout(self):
@@ -1248,6 +1234,7 @@
sizer_1.Add(self.label_contributors, 0, wx.ALIGN_CENTER_VERTICAL, 0)
sizer_1.Add(self.text_ctrl_contributors, 1, wx.ALIGN_CENTER_VERTICAL, 1)
sizer_3.Add(sizer_1, 1, wx.EXPAND, 0)
+ sizer_2_copy.Add(self.button_set_default, 0, wx.ALIGN_BOTTOM, 0)
sizer_2_copy.Add((20, 20), 1, wx.EXPAND, 1)
sizer_2_copy.Add(self.button_ok, 0, wx.ALIGN_BOTTOM, 0)
sizer_3.Add(sizer_2_copy, 1, wx.EXPAND, 0)
@@ -1256,14 +1243,6 @@
self.SetSizer(sizer_vertical)
# end wxGlade
- def enable_ok(self, event): # wxGlade: MetadataPanel.<event_handler>
- print "Event handler `enable_ok' not implemented!"
- event.Skip()
-
- def save_config(self, event): # wxGlade: MetadataPanel.<event_handler>
- print "Event handler `save_config' not implemented!"
- event.Skip()
-
# end of class MetadataPanel
class ConfigDialog(wx.Dialog):
=== modified file 'src/2.0/config.py'
--- src/2.0/config.py 2013-01-22 02:58:54 +0000
+++ src/2.0/config.py 2013-02-01 19:08:51 +0000
@@ -9,26 +9,27 @@
class ConfigDialog(cdd_gui.ConfigDialog):
def __init__(self, *args, **kwds):
cdd_gui.ConfigDialog.__init__(self, *args, **kwds)
- self.init_things()
+
+ self.autosave = ''
+ self.workspace = ''
+ self.rm_version = ''
- def init_things(self):
- self.info = None
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)
+## # 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)
+ #if time > 0:
+ # self.timer.Start(time*1000*60)
def timer_worker(self, event=None):
#TODO: Put the CDD automatic save routine here
@@ -61,10 +62,12 @@
def read_config(self):
self.config.read(self.configname)
+ self.load_fields()
self.set_panel_configs()
def save_config(self):
#self.get_panel_configs()
+ self.store_fields()
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')
@@ -72,17 +75,26 @@
except IOError:
popup_message(None, 'Config could not be saved.', 'Error saving config', wx.ICON_EXCLAMATION)
- self.set_config_info()
-
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'))
- self.config.set('DEFAULT', 'rm_version', self.text_ctrl_rm_version.GetValue().encode('utf8'))
+ self.autosave = self.text_ctrl_autosave.GetValue().encode('utf8')
+ self.workspace = self.text_ctrl_workspace.GetValue().encode('utf8')
+ self.rm_version = self.text_ctrl_rm_version.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'))
- self.text_ctrl_rm_version.SetValue(self.config.get('DEFAULT', 'rm_version'))
+ self.text_ctrl_autosave.SetValue(self.autosave)
+ self.text_ctrl_workspace.SetValue(self.workspace)
+ self.text_ctrl_rm_version.SetValue(self.rm_version)
+
+ def store_fields(self):
+ self.config.set('DEFAULT', 'autosave', self.autosave)
+ self.config.set('DEFAULT', 'workspace', self.workspace)
+ self.config.set('DEFAULT', 'rm_version', self.rm_version)
+
+ def load_fields(self):
+ self.autosave = self.config.get('DEFAULT', 'autosave')
+ self.workspace = self.config.get('DEFAULT', 'workspace')
+ self.rm_version = self.config.get('DEFAULT', 'rm_version')
+
def test_workspace_dir(self, panel):
workspace = self.config.get('DEFAULT', 'workspace')
@@ -103,10 +115,21 @@
dlg.Destroy()
- def set_config_info(self):
- # Sets the necessary config information in the info object
- if self.info:
- rm_version = self.config.get('DEFAULT', 'rm_version')
- self.info.get_config_info(rm_version)
+ def get_as_dict(self):
+ conf = dict(
+ autosave = self.autosave,
+ workspace = self.workspace,
+ rm_version = self.rm_version,
+ )
+
+ return conf
+
+ def set_from_dict(self, conf):
+ self.autosave = conf.get('autosave')
+ self.workspace = conf.get('workspace')
+ self.rm_version = conf.get('rm_version')
+
+ self.set_panel_configs()
+
# end of class ConfigDialog
=== removed file 'src/2.0/info.py'
--- src/2.0/info.py 2013-02-01 18:06:52 +0000
+++ src/2.0/info.py 1970-01-01 00:00:00 +0000
@@ -1,238 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# (c) 2012 - Timothy w.Cook & Contributors.
-
-import uuid
-from xml.sax.saxutils import escape
-
-# This class holds the XSD file that will be created.
-class Info(object):
- def __init__(self):
- self.title = ''
- self.description = ''
- self.creator = ''
- self.creator_email = ''
- self.contributor = ''
-
- self.publisher = ''
- self.subject = ''
- self.source = ''
- self.rights = ''
- self.relation = ''
- self.coverage = ''
-
- self.language = ''
-
- self.date = ''
-
- self.rm_version = ''
-
- self.defin = []
-
- self.ccd_id = ''
-
- def get_metadata_info(self, title, description, date, creator, creator_email, contributor, language, publisher, subject, source, rights, relation, coverage):
- self.title = title
- self.description = description
- self.creator = creator
- self.creator_email = creator_email
- self.contributor = contributor
-
- self.publisher = publisher
- self.subject = subject
- self.source = source
- self.rights = rights
- self.relation = relation
- self.coverage = coverage
-
- self.language = language
-
- self.date = date
-
- def get_config_info(self, rm_version):
- self.rm_version = rm_version
-
-
- def get_defin_type(self, defin):
- if defin:
- tipo = defin + 'Type'
- self.defin.append(tipo)
-
- def generate_file(self, path):
-
- schema = self.ccd_id + ".xsd"
-
- # CDD version, transformed. ex: 2.x.y -> 2_x_y
- version = self.rm_version.replace('.','_')
-
-
- UUID_definition = str(uuid.uuid4())
- UUID_complex = str(uuid.uuid4())
-
-
- contributors_formated = '<dc:contributor>' + \
- '</dc:contributor>\n<dc:contributor>'.join([ escape(i).strip() for i in self.contributor.split(';')]) + \
- '</dc:contributor>'
-
- xsd_file = open(path+'/'+schema,'w')
-
-
-######### Header of the ccd #############################################
- xsd_file.write(
-"""<?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:mlhim2="http://www.mlhim.org/xmlns/mlhim2/{version}"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:owl="http://www.w3.org/2002/07/owl#"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:sawsdl="http://www.w3.org/ns/sawsdl"
- xmlns:sawsdlrdf="http://www.w3.org/ns/sawsdl#"
- id="mlhim2-{ccd_id}"
- elementFormDefault="qualified"
- targetNamespace="http://www.mlhim.org/xmlns/mlhim2/{version}"
- xmlns:data-view="http://www.w3.org/2003/g/data-view#"
- data-view:transformation="http://www.mlhim.org/ccd/ccd_md_view.xsl">
-
- <xs:annotation>
- <xs:appinfo>""".format(ccd_id = self.ccd_id,
- version = version,
- ))
-
-######### RDF info ######################################################
- xsd_file.write("""
- <rdf:RDF>
-
- <rdf:Description rdf:about="http://www.hkcr.net/ccd/{ccd_id}">
- <dc:title>{title}</dc:title>
- <dc:creator>{creator} <{creator_email}> </dc:creator>
- {contributors}
- <dc:subject>{subject}</dc:subject>
- <dc:source>{source}</dc:source>
- <dc:rights>{rights}</dc:rights>
- <dc:relation>{relation}</dc:relation>
- <dc:coverage>{coverage}</dc:coverage>
- <dc:type>{resource_type}</dc:type>
- <dc:identifier>{identifier}</dc:identifier>
- <dc:description>{description}</dc:description>
- <dc:publisher>{publisher}</dc:publisher>
- <dc:date>{date}</dc:date>
- <dc:format>{resource_format}</dc:format>
- <dc:language>{language}</dc:language>
- </rdf:Description>
- </rdf:RDF>""".format(ccd_id = self.ccd_id,
-
- title = escape(self.title),
- description = escape(self.description),
- date = self.date,
- creator = escape(self.creator),
- creator_email = escape(self.creator_email),
- contributors = contributors_formated,
- language = self.language,
- publisher = escape(self.publisher),
- subject = escape(self.subject),
- source = escape(self.source),
- rights = escape(self.rights),
- relation = escape(self.relation),
- coverage = escape(self.coverage),
-
- resource_type = "MLHIM Concept Constraint Definition (CCD)",
- resource_format = "text/xml",
- identifier = self.ccd_id,
-
- ))
-
-########## CCD definition ##############################################
- xsd_file.write("""
- </xs:appinfo>
- </xs:annotation>
-
- <xs:include schemaLocation="http://www.mlhim.org/xmlns/mlhim2/{version}/mlhim2.xsd"/>
-
- <xs:element name="{ccd_id}" type="mlhim2:ct-{UUID_complex}"/>
-
- <xs:complexType name="ct-{UUID_complex}">
- <xs:complexContent>
- <xs:restriction base="mlhim2:CCDType">
- <xs:sequence>
- <xs:element minOccurs="1" maxOccurs="1" ref="mlhim2:el-{UUID_definition}"/>
- </xs:sequence>
- </xs:restriction>
- </xs:complexContent>
- </xs:complexType>
- <xs:element name='el-{UUID_definition}' substitutionGroup="mlhim2:definition" type='mlhim2:ct-{UUID_definition}'/>
-""".format(ccd_id = self.ccd_id,
- UUID_definition = UUID_definition,
- UUID_complex = UUID_complex,
-
- version = version,
-
- ))
-
-####### xls2ccdRM ######################################################
-
- if self.defin:
- defin_type = self.defin
- defin_id = UUID_definition
- dt_id = str(uuid.uuid4())
-
- e_data_type = "ClusterType"
- #data_name = title.replace('&', '&').replace('<', '<').replace('>', '>').replace("'", ''').replace('"', '"')
- data_name = escape(self.title)
- dt_docs = escape(self.description)
-
-
- import xls2ccdRM
-
- complexTypes = xls2ccdRM.get_map()[0].keys()
- elements = xls2ccdRM.get_map()[1].keys()
-
- indent = 2
- if defin_type[0] == "ElementType":
- xsd_file.write(xls2ccdRM.getElementType(defin_id, dt_id, indent))
-
- elif defin_type[0] == "CareEntryType":
- xsd_file.write(xls2ccdRM.getCareEntryType(data_name, defin_id, dt_docs, dt_id, e_data_type, indent))
-
- elif defin_type[0] == "DemographicEntryType":
- xsd_file.write(xls2ccdRM.getDemographicEntryType(data_name, defin_id, dt_docs, dt_id, e_data_type, indent))
-
- elif defin_type[0] == "AdminEntryType":
- xsd_file.write(xls2ccdRM.getAdminEntryType(data_name, defin_id, dt_docs, dt_id, e_data_type, indent))
-
-########################################################################
- xsd_file.write("\n</xs:schema>\n<!-- Here are some UUIDs to use for complexType & element names:\n\n")
-
- for x in range(0,20):
- xsd_file.write(str(uuid.uuid4())+"\n\n")
-
- xsd_file.write("-->")
-
- xsd_file.close()
-
-########################################################################
-
- def randomize_uuid(self):
- self.ccd_id = "ccd-"+str(uuid.uuid4())
-
- # Gets info from the metadata panel. Depends on class metadata specifics
- def get_meta_info(self, panel):
- title = panel.text_ctrl_title.GetValue().encode('utf8')
- description = panel.text_ctrl_description.GetValue().encode('utf8')
- creator = panel.text_ctrl_creator.GetValue().encode('utf8')
- creator_email = panel.text_ctrl_creator_email.GetValue().encode('utf8')
- contributor = panel.text_ctrl_contributors.GetValue().encode('utf8')
-
- publisher = panel.text_ctrl_publisher.GetValue().encode('utf8')
- subject = panel.text_ctrl_subject.GetValue().encode('utf8')
- source = panel.text_ctrl_source.GetValue().encode('utf8')
- rights = panel.text_ctrl_rights.GetValue().encode('utf8')
- relation = panel.text_ctrl_relation.GetValue().encode('utf8')
- coverage = panel.text_ctrl_coverage.GetValue().encode('utf8')
-
- language = panel.choice_lang.GetStringSelection()
-
- tempo = panel.datepicker_ctrl_date.GetValue()
- date = '{Y}-{M:02}-{D:02}'.format(Y=tempo.GetYear(), M=tempo.GetMonth()+1, D=tempo.GetDay())
-
- self.get_metadata_info(title, description, date, creator, creator_email, contributor, language, publisher, subject, source, rights, relation, coverage)
-
=== modified file 'src/2.0/metadata.py'
--- src/2.0/metadata.py 2013-01-31 19:11:59 +0000
+++ src/2.0/metadata.py 2013-02-01 19:08:51 +0000
@@ -2,6 +2,7 @@
import os
import ConfigParser
+import wx
import cdd_gui
class MetadataPanel(cdd_gui.MetadataPanel):
@@ -12,7 +13,7 @@
self.description = ''
self.creator = ''
self.creator_email = ''
- self.contributor = ''
+ self.contributors = ''
self.publisher = ''
self.subject = ''
self.source = ''
@@ -20,12 +21,16 @@
self.relation = ''
self.coverage = ''
self.language = ''
+ self.date = ''
- self.info = None
self.init_config()
self.read_config()
- self.button_ok.Disable()
+
+ #self.button_ok.Disable()
+ self.button_set_default.Disable()
+ self.set_binds()
+
def init_config(self):
if sys.platform.startswith('linux'):
home = os.environ['HOME']
@@ -64,8 +69,16 @@
self.config.read(self.configname)
self.load_fields()
self.set_panel_configs()
+ self.set_panel_date_to_current()
+
+
+ def set_panel_date_to_current(self):
+ date = wx.DateTime()
+ date.SetToCurrent()
+ self.datepicker_ctrl_date.SetValue(date)
+
- def save_config(self, event=None): # wxGlade: MetadataPanel.<event_handler>
+ def set_default(self, event=None): # wxGlade: MetadataPanel.<event_handler>
self.get_panel_configs()
self.store_fields()
@@ -76,33 +89,13 @@
except IOError:
popup_message(None, 'Config could not be saved.', 'Error saving config', wx.ICON_EXCLAMATION)
- self.set_meta_info()
+ self.button_set_default.Disable()
+
+
+ def update_values(self, event=None):
+ self.get_panel_configs()
self.button_ok.Disable()
-
- def set_meta_info(self):
- # Sets the necessary metadata information in the info object
- if self.info:
- title = self.text_ctrl_title.GetValue().encode('utf8')
- description = self.text_ctrl_description.GetValue().encode('utf8')
- creator = self.text_ctrl_creator.GetValue().encode('utf8')
- creator_email = self.text_ctrl_creator_email.GetValue().encode('utf8')
- contributors = self.text_ctrl_contributors.GetValue().encode('utf8')
-
- publisher = self.text_ctrl_publisher.GetValue().encode('utf8')
- subject = self.text_ctrl_subject.GetValue().encode('utf8')
- source = self.text_ctrl_source.GetValue().encode('utf8')
- rights = self.text_ctrl_rights.GetValue().encode('utf8')
- relation = self.text_ctrl_relation.GetValue().encode('utf8')
- coverage = self.text_ctrl_coverage.GetValue().encode('utf8')
-
- language = self.choice_lang.GetStringSelection()
-
- tempo = self.datepicker_ctrl_date.GetValue()
- date = '{Y}-{M:02}-{D:02}'.format(Y=tempo.GetYear(), M=tempo.GetMonth()+1, D=tempo.GetDay())
-
- self.info.get_metadata_info(title, description, date, creator, creator_email, contributors, language, publisher, subject, source, rights, relation, coverage)
-
-
+
def get_panel_configs(self):
self.title = self.text_ctrl_title.GetValue().encode('utf8')
self.description = self.text_ctrl_description.GetValue().encode('utf8')
@@ -118,6 +111,9 @@
self.coverage = self.text_ctrl_coverage.GetValue().encode('utf8')
self.language = str(self.choice_lang.GetSelection())
+
+ date = self.datepicker_ctrl_date.GetValue()
+ self.date = '{Y}-{M:02}-{D:02}'.format(Y=date.GetYear(), M=date.GetMonth()+1, D=date.GetDay())
def set_panel_configs(self):
self.text_ctrl_title.SetValue(self.title)
@@ -134,6 +130,14 @@
self.text_ctrl_coverage.SetValue(self.coverage)
self.choice_lang.SetSelection(int(self.language))
+
+ if self.date:
+ year, month, day = self.date.split('-')
+ date = wx.DateTime()
+ date.SetDay(int(day))
+ date.SetMonth(int(month))
+ date.SetYear(int(year))
+ self.datepicker_ctrl_date.SetValue(date)
def load_fields(self):
self.title = self.config.get('DEFAULT', 'title')
@@ -182,27 +186,48 @@
relation = self.relation,
coverage = self.coverage,
language = self.language,
+ date = self.date
)
return md
- def set_from_dict(self, dicto):
- self.title = dicto['title']
- self.description = dicto['description']
- self.creator = dicto['creator']
- self.creator_email = dicto['creator_email']
- self.contributor = dicto['contributor']
- self.publisher = dicto['publisher']
- self.subject = dicto['subject']
- self.source = dicto['source']
- self.rights = dicto['rights']
- self.relation = dicto['relation']
- self.coverage = dicto['coverage']
- self.language = dicto['language']
+ def set_from_dict(self, md):
+ self.title = md.get('title')
+ self.description = md.get('description')
+ self.creator = md.get('creator')
+ self.creator_email = md.get('creator_email')
+ self.contributor = md.get('contributor')
+ self.publisher = md.get('publisher')
+ self.subject = md.get('subject')
+ self.source = md.get('source')
+ self.rights = md.get('rights')
+ self.relation = md.get('relation')
+ self.coverage = md.get('coverage')
+ self.language = md.get('language')
+ self.date = md.get('date')
self.set_panel_configs()
- def enable_ok(self, event): # wxGlade: MetadataPanel.<event_handler>
+ def set_binds(self):
+ self.Bind(wx.EVT_TEXT, self.enable_buttons, self.text_ctrl_title)
+ self.Bind(wx.EVT_TEXT, self.enable_buttons, self.text_ctrl_description)
+ self.Bind(wx.EVT_CHOICE, self.enable_buttons, self.choice_lang)
+ self.Bind(wx.EVT_TEXT, self.enable_buttons, self.text_ctrl_subject)
+ self.Bind(wx.EVT_TEXT, self.enable_buttons, self.text_ctrl_creator)
+ self.Bind(wx.EVT_TEXT, self.enable_buttons, self.text_ctrl_creator_email)
+ self.Bind(wx.EVT_TEXT, self.enable_buttons, self.text_ctrl_source)
+ self.Bind(wx.EVT_TEXT, self.enable_buttons, self.text_ctrl_publisher)
+ self.Bind(wx.EVT_TEXT, self.enable_buttons, self.text_ctrl_rights)
+ self.Bind(wx.EVT_TEXT, self.enable_buttons, self.text_ctrl_relation)
+ self.Bind(wx.EVT_TEXT, self.enable_buttons, self.text_ctrl_coverage)
+ self.Bind(wx.EVT_TEXT, self.enable_buttons, self.text_ctrl_contributors)
+
+ self.Bind(wx.EVT_BUTTON, self.set_default, self.button_set_default)
+ self.Bind(wx.EVT_BUTTON, self.update_values, self.button_ok)
+
+
+ def enable_buttons(self, event):
self.button_ok.Enable()
-
+ self.button_set_default.Enable()
+
# end of class MetadataPanel