X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/510bb7480c5138dd5127ed3d8b1d9cbab39983c9..1f780e48af479e7bf9a07eaaa1ab6b41f1ffb17b:/wxPython/samples/ide/activegrid/tool/UICommon.py diff --git a/wxPython/samples/ide/activegrid/tool/UICommon.py b/wxPython/samples/ide/activegrid/tool/UICommon.py new file mode 100644 index 0000000000..0f83b65e91 --- /dev/null +++ b/wxPython/samples/ide/activegrid/tool/UICommon.py @@ -0,0 +1,115 @@ +#---------------------------------------------------------------------------- +# Name: UICommon.py +# Purpose: Shared UI stuff +# +# Author: Matt Fryer +# +# Created: 3/10/05 +# CVS-ID: $Id$ +# Copyright: (c) 2005 ActiveGrid, Inc. +# License: wxWindows License +#---------------------------------------------------------------------------- + +import os +import os.path +import wx +import ProjectEditor +_ = wx.GetTranslation + +def CreateDirectoryControl( parent, fileLabel, dirLabel, fileExtension, startingName="", startingDirectory=""): + + nameControl = wx.TextCtrl(parent, -1, startingName, size=(-1,-1)) + nameLabelText = wx.StaticText(parent, -1, fileLabel) + dirLabelText = wx.StaticText(parent, -1, dirLabel) + dirControl = wx.TextCtrl(parent, -1, startingDirectory, size=(-1,-1)) + dirControl.SetToolTipString(startingDirectory) + button = wx.Button(parent, -1, _("Browse..."), size=(60,-1)) + + def OnFindDirClick(event): + name = "" + nameCtrlValue = nameControl.GetValue() + if nameCtrlValue: + root, ext = os.path.splitext( nameCtrlValue ) + if ext == '.' + fileExtension: + name = nameCtrlValue + else: + name = _("%s.%s") % (nameCtrlValue, fileExtension) + path = wx.FileSelector(_("Choose a filename and directory"), + "", + "%s" % name, + wildcard=_("*.%s") % fileExtension , + flags=wx.SAVE, + parent=parent) + + if path: + dir, filename = os.path.split(path) + dirControl.SetValue(dir) + dirControl.SetToolTipString(dir) + nameControl.SetValue(filename) + + parent.Bind(wx.EVT_BUTTON, OnFindDirClick, button) + + def Validate(allowOverwriteOnPrompt=False): + if nameControl.GetValue() == "": + wx.MessageBox(_("Please provide a filename."), _("Provide a Filename")) + return False + if nameControl.GetValue().find(' ') != -1: + wx.MessageBox(_("Please provide a filename that does not contains spaces."), _("Spaces in Filename")) + return False + filePath = os.path.join(dirControl.GetValue(), MakeNameEndInExtension(nameControl.GetValue(), "." + fileExtension)) + if os.path.exists(filePath): + if allowOverwriteOnPrompt: + res = wx.MessageBox(_("That file already exists. Would you like to overwrite it."), "File Exists", style=wx.YES_NO|wx.NO_DEFAULT) + return (res == wx.YES) + else: + wx.MessageBox(_("That file already exists. Please choose a different name."), "File Exists") + return False + return True + HALF_SPACE = 5 + flexGridSizer = wx.FlexGridSizer(cols = 3, vgap = HALF_SPACE, hgap = HALF_SPACE) + flexGridSizer.AddGrowableCol(1,1) + flexGridSizer.Add(nameLabelText, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT|wx.TOP|wx.RIGHT, HALF_SPACE) + flexGridSizer.Add(nameControl, 2, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND) + flexGridSizer.Add(button, flag=wx.ALIGN_RIGHT|wx.LEFT, border=HALF_SPACE) + + flexGridSizer.Add(dirLabelText, flag=wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_LEFT|wx.TOP|wx.RIGHT, border=HALF_SPACE) + flexGridSizer.Add(dirControl, 2, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND, border=HALF_SPACE) + flexGridSizer.Add(wx.StaticText(parent, -1, ""), 0) + return nameControl, dirControl, flexGridSizer, Validate + +def AddFilesToCurrentProject(paths, save=False): + projectService = wx.GetApp().GetService(ProjectEditor.ProjectService) + if projectService: + projectDocument = projectService.GetCurrentProject() + if projectDocument: + files = projectDocument.GetFiles() + for path in paths: + if path in files: + paths.remove(path) + if paths: + projectDocument.GetCommandProcessor().Submit(ProjectEditor.ProjectAddFilesCommand(projectDocument, paths)) + if save: + projectDocument.OnSaveDocument(projectDocument.GetFilename()) + +def MakeNameEndInExtension(name, extension): + if not name: + return name + root, ext = os.path.splitext(name) + if ext == extension: + return name + else: + return name + extension + +# Lame +def PluralName(name): + if not name: + return name + if name.endswith('us'): + return name[0:-2] + 'ii' + elif name.endswith('s'): + return name + elif name.endswith('y'): + return name[0:-1] + 'ies' + else: + return name + 's' +