20 from wx.lib.filebrowsebutton
import DirBrowseButton
22 from ..controller.ctrlcommands
import (CreateNewResource, AddTestDataDirectory, AddTestCaseFile,
23 CreateNewDirectoryProject, CreateNewFileProject, SetFileFormat,
24 SetFileFormatRecuresively)
26 from ..utils
import overrides
27 from ..validators
import NonEmptyValidator, NewSuitePathValidator, SuiteFileNameValidator
28 from ..widgets
import Label, RIDEDialog
31 DirBrowseButton.createLabel =
lambda self: Label(self, size=(110, -1), label=self.labelText)
36 formats = [
"ROBOT",
"TXT",
"TSV",
"HTML"]
40 label_sizer = wx.BoxSizer(wx.VERTICAL)
44 label_sizer, default_dir)
46 label_sizer, default_dir)
47 radio_group_sizer = wx.BoxSizer(wx.VERTICAL)
50 edit_sizer = wx.BoxSizer(wx.HORIZONTAL)
51 edit_sizer.Add(label_sizer, 1, wx.EXPAND)
52 edit_sizer.Add(radio_group_sizer)
53 sizer.Add(edit_sizer, 1, wx.EXPAND)
58 RIDEDialog.__init__(self, title)
60 self.SetLayoutDirection(wx.Layout_LeftToRight)
61 return wx.BoxSizer(wx.VERTICAL)
64 self._create_horizontal_line(sizer)
65 self._create_buttons(sizer)
70 disp_sizer = wx.BoxSizer(wx.HORIZONTAL)
72 name_editor = wx.TextCtrl(self)
74 name_editor.SetBackgroundColour(Colour(self.color_secondary_background))
75 name_editor.SetForegroundColour(Colour(self.color_secondary_foreground))
76 self.Bind(wx.EVT_TEXT, self.
OnPathChangedOnPathChanged, name_editor)
77 if wx.VERSION < (4, 1, 0):
78 disp_sizer.Add(name_editor, 1, wx.ALIGN_CENTRE | wx.ALL | wx.EXPAND, 3)
80 disp_sizer.Add(name_editor, 1, wx.ALL | wx.EXPAND, 3)
81 sizer.Add(disp_sizer, 1, wx.EXPAND)
85 label = Label(self, label=text, size=(110, -1))
86 sizer.Add(label, flag=wx.CENTER | wx.ALL, border=3)
92 from ..controller.filecontrollers
import ResourceFileController
94 formats = list(self.
formatsformats)
95 if (hasattr(self,
'_controller')
and
96 isinstance(self._controller, ResourceFileController))
or\
97 (hasattr(self,
'_title')
and self.
_title_title ==
"New Resource File"):
98 formats += [
"RESOURCE"]
102 radios = wx.RadioBox(self, label=label, choices=choices, majorDimension=4)
103 radios.SetBackgroundColour(Colour(self.color_background))
104 radios.SetForegroundColour(Colour(self.color_foreground))
108 self.Bind(wx.EVT_RADIOBOX, self.
OnPathChangedOnPathChanged, radios)
109 sizer.Add(radios, flag=wx.ALIGN_LEFT | wx.RA_SPECIFY_ROWS | wx.ALL, border=5)
113 browser = DirBrowseButton(self, labelText=
"Parent Directory",
114 dialogTitle=
"Choose Parent Directory",
115 startDirectory=default_dir,
116 size=(600, -1), newDirectory=
True,
118 browser.SetBackgroundColour(Colour(self.color_background))
119 browser.SetForegroundColour(Colour(self.color_foreground))
123 browser.SetValue(default_dir)
124 sizer.Add(browser, 1, wx.EXPAND)
128 return self.
_create_display_create_display(sizer,
"Parent Directory", path)
131 return self.
_create_display_create_display(sizer,
"Created Path", path,
135 disp_sizer = wx.BoxSizer(wx.HORIZONTAL)
137 disp = wx.TextCtrl(self, value=value)
138 disp.SetBackgroundColour(Colour(self.color_background))
139 disp.SetForegroundColour(Colour(self.color_foreground))
140 disp.SetSizeHints(self.GetTextExtent(value)[0]+100, -1)
141 disp.SetEditable(
False)
143 disp.SetValidator(validator)
144 disp_sizer.Add(disp, 1, wx.ALL | wx.EXPAND, 3)
145 sizer.Add(disp_sizer, 1, wx.EXPAND)
151 name.replace(
' ',
'_'))
153 path = os.path.join(path,
'__init__')
159 return self.
_type_chooser_type_chooser.GetStringSelection() ==
"Directory"
167 if not hasattr(self,
"_path_display"):
176 return self._create_parent_display(sizer, self._path)
183 _CreationDialog.__init__(self, project.default_dir,
"New Project")
186 cmd = CreateNewDirectoryProject
if self.
_is_dir_type_is_dir_type()\
187 else CreateNewFileProject
194 self.
_path_path = controller.directory
195 _CreationDialog.__init__(self, controller.default_dir,
198 settings.get(
"default file format",
"robot"))
214 self.
_path_path = controller.directory
215 _CreationDialog.__init__(self, self.
_path_path, self.
NAMENAME)
217 settings.get(
"default file format",
"robot"))
219 @overrides(_CreationDialog)
221 name_editor = _CreationDialog._create_name_editor(self, sizer)
222 name_editor.SetBackgroundColour(Colour(self.color_secondary_background))
223 name_editor.SetForegroundColour(Colour(self.color_secondary_foreground))
224 name_editor.SetValidator(
229 cmd = AddTestDataDirectory
if self.
_is_dir_type_is_dir_type()
else AddTestCaseFile
235 NAME =
"Add Directory"
247 sizer = self.
_init_dialog_init_dialog(
"Set Data Format")
251 self.
_chooser_chooser.SetStringSelection(controller.get_format()
or "TXT")
262 return self.
_chooser_chooser.GetStringSelection()
268 if not self.
_controller_controller.is_directory_suite():
270 selector = wx.CheckBox(self, label=
"Change recursively")
271 selector.SetBackgroundColour(Colour(self.color_secondary_background))
272 selector.SetForegroundColour(Colour(self.color_secondary_foreground))
273 selector.SetValue(
True)
274 sizer.Add(selector, flag=wx.ALL, border=5)
279 else SetFileFormatRecuresively
289 help =
"Provide format for initialization file in directory\n\"%s\"." \
291 sizer.Add(Label(self, label=help), flag=wx.ALL, border=5)
302 wx.FileDialog.__init__(self, window, style=style, wildcard=self.
_get_wildcard_get_wildcard(settings),
303 defaultDir=self.
_controller_controller.default_dir, message=
"Open")
307 (
"robot",
"Robot data (*.robot)|*.robot"),
308 (
"txt",
"Robot data (*.txt)|*.txt"),
309 (
"resource",
"Robot resource file (*.resource)|*.resource"),
310 (
"tsv",
"Robot Tab Separated data (*.tsv)|*.tsv"),
311 (
"html",
"Robot HTML data (pre 3.2.2) (*.html)|*.html"),
312 (
"all",
"All files|*.*")
314 default_format = settings.get(
"default file format",
"robot")
315 robottypes = settings.get(
'robot types', [
'robot',
'resource',
'txt',
'tsv',
'html'])
316 if default_format
not in robottypes:
317 default_format =
"all"
318 first = [ft
for ft
in filetypes
if ft[0] == default_format]
319 rest = [ft
for ft
in filetypes
if ft[0] != default_format]
320 return '|'.join(ft[1]
for ft
in first + rest)
323 if self.ShowModal() == wx.ID_OK:
324 path = self.GetPath()
325 self.
_controller_controller.update_default_dir(path)
def _create_type_chooser(self, sizer)
def _create_name_editor(self, sizer)
def __init__(self, controller, settings)
def __init__(self, project)
def _create_type_chooser(self, sizer)
def __init__(self, controller, settings)
def __init__(self, window, controller, settings)
def _get_wildcard(self, settings)
def OnPathChanged(self, event)
def _create_type_chooser(self, sizer)
def _create_name_editor(self, sizer)
def _create_parent_display(self, sizer, path)
def _create_format_chooser(self, sizer, callback=True)
def __init__(self, default_dir, title)
def _create_path_display(self, sizer, path)
def _create_parent_chooser(self, sizer, default_dir)
def _add_label(self, sizer, text)
def _init_dialog(self, title)
def _create_display(self, sizer, title, value, validator=None)
def _create_radiobuttons(self, sizer, label, choices, callback=True)
def _finalize_dialog(self, sizer)
def _create_parent_chooser(self, sizer, default_dir)