Example #1
0
    def CreateLayout(self):
        #Main Layout
        layoutFolder = forms.DynamicLayout()
        layoutFolder.Spacing = drawing.Size(2,2)
        layoutFolder.AddRow(None, self.lblProj, self.drpDwnProj)
        layoutFolder.AddRow(None, self.lblVersion, self.drpDwnVersion)
        layoutFolder.AddRow(None, self.lblProjName, self.tBoxProjName)
        layoutFolder.AddRow(None, self.lblProjNum, self.tBoxProjNum)
        layoutFolder.AddRow(None, self.lblClientName, self.tBoxClientName)
        layoutFolder.AddRow(None, self.lblProjCity, self.tBoxProjCity)
        layoutFolder.AddRow(None, self.lblProjState, self.drpDwnProjState)
        layoutFolder.AddRow(None, self.lblProjCountry, self.drpDwnProjCountry)
        layoutFolder.AddRow(None)

        #Bottom row
        layoutButtons = forms.DynamicLayout()
        layoutButtons.AddRow(None)
        layoutButtons.AddRow(None, self.btnTest, self.btnCancel, self.btnApply, self.btnSave, self.btnSaveAs)

        #Final Layout
        layout = forms.DynamicLayout()
        layout.AddSeparateRow(layoutFolder)
        layout.AddSeparateRow(layoutButtons)

        #Add the layout to the dialog
        self.Content = layout
Example #2
0
    def setup(self, sceneNode):
        self.Title = "Attributes"
        self.sceneNode = sceneNode

        control = forms.TabControl()
        control.TabPosition = forms.DockPosition.Top

        tab = Tree_Tab.from_sceneNode(sceneNode, 'Edges')
        control.Pages.Add(tab)

        self.TabControl = control

        tab_items = forms.StackLayoutItem(self.TabControl, True)
        layout = forms.StackLayout()
        layout.Spacing = 5
        layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch
        layout.Items.Add(tab_items)

        sub_layout = forms.DynamicLayout()
        sub_layout.Spacing = drawing.Size(5, 0)
        # sub_layout.AddRow(None, self.ok, self.cancel, self.apply)
        sub_layout.AddRow(None, self.cancel)
        layout.Items.Add(forms.StackLayoutItem(sub_layout))

        self.Content = layout
        self.Padding = drawing.Padding(12)
        self.Resizable = True
        self.ClientSize = drawing.Size(400, 600)
Example #3
0
    def __init__(self, error="Unknown", title="Error", width=800, height=400):
        self.Title = title
        self.Padding = drawing.Padding(0)
        self.Resizable = False

        # tab_items = forms.StackLayoutItem(self.TabControl, True)
        layout = forms.StackLayout()
        layout.Spacing = 5
        layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch

        self.m_textarea = forms.TextArea()
        self.m_textarea.Size = drawing.Size(400, 400)
        self.m_textarea.Text = error
        self.m_textarea.ReadOnly = True
        layout.Items.Add(self.m_textarea)

        sub_layout = forms.DynamicLayout()
        sub_layout.Spacing = drawing.Size(5, 0)
        sub_layout.AddRow(None, self.cancel)
        layout.Items.Add(forms.StackLayoutItem(sub_layout))

        self.Content = layout
        self.Padding = drawing.Padding(12)
        self.Resizable = True
        # self.ClientSize = drawing.Size(width, height)

        self.ShowModal(Rhino.UI.RhinoEtoApp.MainWindow)
Example #4
0
    def create_vertices_table(cls, sceneNode, keys):
        datastructure = sceneNode.datastructure
        table = cls(sceneNode=sceneNode, table_type='vertices')
        table.add_column('Name')
        table.add_column('Value', Editable=True)
        attributes = list(datastructure.default_vertex_attributes.keys())
        attributes = table.sort_attributes(attributes)

        treecollection = forms.TreeGridItemCollection()
        key = keys[0]
        for attr in attributes:
            if attr[0] != '_' and attr != 'constraints':
                if datastructure.attributes['name'] == 'form' and attr == 'z':
                    pass
                else:
                    values = [
                        str(attr),
                        datastructure.vertex_attribute(key, attr)
                    ]
                    vertex_item = forms.TreeGridItem(Values=tuple(values))
                    treecollection.Add(vertex_item)

        table.DataStore = treecollection
        table.Activated += table.SelectEvent(sceneNode, keys)
        table.ColumnHeaderClick += table.HeaderClickEvent()
        table.CellEdited += table.EditEvent(sceneNode, keys)
        return table
Example #5
0
    def create_edges_table(cls, sceneNode):
        datastructure = sceneNode.datastructure
        table = cls(sceneNode=sceneNode, table_type='edges')
        table.add_column('key')
        attributes = list(datastructure.default_edge_attributes.keys())
        attributes = table.sort_attributes(attributes)

        for attr in attributes:
            editable = attr[0] != '_'
            checkbox = type(
                datastructure.default_edge_attributes[attr]) == bool
            if not editable:
                attr = attr[1:]
            table.add_column(attr, Editable=editable, checkbox=checkbox)

        treecollection = forms.TreeGridItemCollection()
        for key, edge in enumerate(datastructure.edges()):
            values = [str(edge)]
            for attr in attributes:
                values.append(datastructure.edge_attribute(edge, attr))
            edge_item = forms.TreeGridItem(Values=tuple(values))
            treecollection.Add(edge_item)
            for key in edge:
                vertex_item = forms.TreeGridItem(Values=(str(key), ))
                edge_item.Children.Add(vertex_item)
        table.DataStore = treecollection
        table.Activated += table.SelectEvent(sceneNode, 'guid_edge',
                                             'guid_vertex')
        table.ColumnHeaderClick += table.HeaderClickEvent()
        table.CellEdited += table.EditEvent()
        return table
Example #6
0
    def create_global_settings_table(self):
        # Select button
        select_center_label = forms.Label(Text='Sun path center point:')
        select_center_label.Size = drawing.Size(140, 10)

        select_center_button = EtoUtil.create_button(
            text='Pick point', click_event_method=self.on_center_button)

        sun_path_label = forms.Label(Text='Sun path scale:')
        self.m_sun_path_updown = EtoUtil.create_numeric_stepper(decimal_places = 2,
                                                 increment = 0.1,
                                                 value = 1,
                                                 change_event_method =\
                                                 self.on_sun_path_scale_changed)

        sun_sphere_label = forms.Label(Text='Sun sphere scale:')
        self.m_sun_sphere_updown = EtoUtil.create_numeric_stepper(decimal_places = 2,
                                                 increment = 0.1,
                                                 value = 1,
                                                 change_event_method =\
                                                 self.on_sun_sphere_scale_changed)

        layout = EtoUtil.create_layout_from_control_matrix(
            [[select_center_label, select_center_button],
             [sun_path_label, self.m_sun_path_updown],
             [sun_sphere_label, self.m_sun_sphere_updown]])

        return layout
    def __init__(self, image_path):
        self.Title = 'Render Blender'
        self.Padding = drawing.Padding(5)
        self.Resizable = True

        self.image = None
        if os.path.exists(image_path):
            self.img = System.Drawing.Image.FromFile(image_path)
        else:
            return None

        self.image = forms.ImageView()
        self.image.Image = Rhino.UI.EtoExtensions.ToEto(self.img)
        self.image.Size = drawing.Size(self.img.Width / 2, self.img.Height / 2)

        self.DefaultButton = forms.Button(Text='Save')
        self.DefaultButton.Click += self.OnOKButtonClick

        self.AbortButton = forms.Button(Text='Cancel')
        self.AbortButton.Click += self.OnCloseButtonClick

        layout = forms.DynamicLayout()
        layout.Spacing = drawing.Size(5, 5)
        layout.AddRow(self.image)
        layout.AddSeparateRow(None, self.DefaultButton, self.AbortButton)

        self.Content = layout
Example #8
0
    def create_force_table(cls, sceneNode):
        datastructure = sceneNode.diagram
        table = cls(sceneNode=sceneNode, table_type='edges')
        table.add_column('key')

        attributes = list(datastructure.default_edge_attributes.keys())
        attributes = table.sort_attributes(attributes)

        print(attributes)

        for attr in attributes:
            checkbox = type(
                datastructure.default_edge_attributes[attr]) == bool
            print(attr)
            attr = attr.replace("_", "-")
            table.add_column(attr, Editable=False, checkbox=checkbox)

        treecollection = forms.TreeGridItemCollection()
        for key, edge in enumerate(datastructure.edges()):
            values = [str(edge)]
            for attr in attributes:
                values.append(datastructure.edge_attribute(edge, attr))
            edge_item = forms.TreeGridItem(Values=tuple(values))
            treecollection.Add(edge_item)
            # for key in edge:
            #     vertex_item = forms.TreeGridItem(Values=(str(key),))
            #     edge_item.Children.Add(vertex_item)

        table.DataStore = treecollection
        table.Activated += table.SelectEvent(sceneNode, 'guid_edge')
        table.ColumnHeaderClick += table.HeaderClickEvent()
        table.CellEdited += table.EditEvent()
        return table
Example #9
0
 def CreateListBoxRow(self):
     # Create the listbox
     self.m_listbox = forms.ListBox()
     self.m_listbox.Size = drawing.Size(200, 100)
     self.m_listbox.SelectedIndexChanged += self.OnSelectedIndexChanged
     # Create the table row
     table_row = forms.TableRow()
     table_row.ScaleHeight = True
     table_row.Cells.Add(self.m_listbox)
     return table_row
Example #10
0
        def menuBar():
            mnuFile = forms.ButtonMenuItem(Text = "File")
            mnuNew = forms.ButtonMenuItem(Text = "New")
            mnuNew.Click += self.OnNewFileClick
            mnuSave = forms.ButtonMenuItem(Text = "Save")
            mnuSave.Click += self.OnFileSaveClick
            mnuSaveAs = forms.ButtonMenuItem(Text = "Save As...")
            mnuSaveAs.Click += self.OnFileSaveAsClick
            mnuOpen = forms.ButtonMenuItem(Text = "Import from 3dm")
            #mnuOpen.Enabled = False
            mnuOpen.Click += self.OnFileOpenClick
            mnuClose = forms.ButtonMenuItem(Text = "Close")
            mnuClose.Click += self.OnFileCloseClick

            mnuEdit = forms.ButtonMenuItem(Text = "Edit")
            mnuCopy = forms.ButtonMenuItem(Text = "Copy")
            mnuCopy.Click += self.copyToClipboard
            mnuEdit.Items.Add(mnuCopy)

            mnuFile.Items.Add(mnuNew)
            mnuFile.Items.Add(mnuOpen)
            #mnuFile.Items.Add(mnuSave)
            #mnuFile.Items.Add(mnuSaveAs)
            #mnuFile.Items.Add(mnuClose)
            mnuBar = forms.MenuBar(mnuFile, mnuEdit)
            #self.Menu.Spacing = drawing.Size(2,2)
            #mnuBar.Padding = 5

            self.Menu = mnuBar
Example #11
0
    def __init__(self, names, values):
        self.names = names
        self.values = values

        self.table = table = forms.GridView()
        table.ShowHeader = True
        table.DataStore = [[name, value] for name, value in zip(self.names, self.values)]

        c1 = forms.GridColumn()
        c1.HeaderText = 'Name'
        c1.Editable = False
        c1.DataCell = forms.TextBoxCell(0)
        table.Columns.Add(c1)

        c2 = forms.GridColumn()
        c2.HeaderText = 'Value'
        c2.Editable = True
        c2.DataCell = forms.TextBoxCell(1)
        table.Columns.Add(c2)

        tab_items = forms.StackLayoutItem(table, True)
        layout = forms.StackLayout()
        layout.Items.Add(tab_items)
        layout.HorizontalContentAlignment = forms.HorizontalAlignment.Stretch
        sub_layout = forms.DynamicLayout()
        sub_layout.AddRow(None, self.ok, self.cancel)
        layout.Items.Add(forms.StackLayoutItem(sub_layout))

        self.Title = 'RBE: update a list of properties'
        self.Padding = drawing.Padding(12)
        self.Resizable = True
        self.Content = layout
        self.ClientSize = drawing.Size(400, 600)
Example #12
0
 def CreateFormControls(self):
     # Create table layout
     layout = forms.TableLayout()
     layout.Padding = drawing.Padding(10)
     layout.Spacing = drawing.Size(5, 5)
     # Add controls to layout
     layout.Rows.Add(forms.Label(Text='Rhino Objects:'))
     layout.Rows.Add(self.CreateListBoxRow())
     layout.Rows.Add(self.CreateButtonRow())
     # Set the content
     self.Content = layout
Example #13
0
 def add_column(self, HeaderText=None, Editable=False, checkbox=False):
     column = forms.GridColumn()
     if self.ShowHeader:
         column.HeaderText = HeaderText
     column.Editable = Editable
     if not checkbox:
         column.DataCell = forms.TextBoxCell(self.Columns.Count)
     else:
         column.DataCell = forms.CheckBoxCell(self.Columns.Count)
     column.Sortable = True
     self.Columns.Add(column)
Example #14
0
 def __init__(self):
     # create a control
     text = forms.TextArea()
     text.Text = "Every Good Boy Deserves Fudge."
     # create a layout
     layout = forms.TableLayout()
     layout.Padding = drawing.Padding(10)
     layout.Spacing = drawing.Size(5, 5)
     layout.Rows.Add(text)
     # set the panel content
     self.Content = layout
Example #15
0
 def __init__(self):
     # create a control
     label = forms.Label()
     label.Text = "Text Label"
     # create a layout
     layout = forms.DynamicLayout()
     layout.DefaultSpacing = drawing.Size(5, 5)
     layout.Padding = drawing.Padding(10)
     # add the control to the layout
     layout.Add(label)
     # set the panel content
     self.Content = layout
Example #16
0
 def create_form_controls(self):
     """Create all of the controls used by the form."""
     # Create table layout
     layout = forms.TableLayout()
     layout.Padding = drawing.Padding(10)
     layout.Spacing = drawing.Size(5, 5)
     # Add controls to layout
     layout.Rows.Add(forms.Label(Text='Location:'))
     layout.Rows.Add(self.create_list_box())
     layout.Rows.Add(self.create_button_row())
     # Set the content
     self.Content = layout
Example #17
0
 def create_button_row(self):
     """
     Creates the table row that contains the button controls.
     Called by create_form_controls.
     """
     # Select button
     select_button = forms.Button(Text='Open EPW')
     select_button.Click += self.on_load_epw
     # Create layout
     layout = forms.TableLayout(Spacing=drawing.Size(5, 5))
     layout.Rows.Add(forms.TableRow(None, select_button, None))
     return layout
 def CreateButtons(self):
     # Create the default button
     self.DefaultButton = forms.Button(Text='OK')
     self.DefaultButton.Click += self.OnOkButtonClick
     # Create the abort button
     self.AbortButton = forms.Button(Text='Cancel')
     self.AbortButton.Click += self.OnCancelButtonClick
     # Create button layout
     button_layout = forms.DynamicLayout()
     button_layout.Spacing = drawing.Size(5, 5)
     button_layout.AddRow(None, self.DefaultButton, self.AbortButton, None)
     return button_layout
Example #19
0
        def buttons():
            #BUTTONS
            self.btnApply = forms.Button()
            self.btnApply.Text = "OK"
            self.btnApply.Click += self.OnFileSaveClick

            self.btnCancel = forms.Button()
            self.btnCancel.Text = "Cancel"
            self.btnCancel.Click += self.OnCancelPressed

            self.DefaultButton = self.btnApply
            self.AbortButton = self.btnCancel
Example #20
0
 def CreateButtonRow(self):
     # Select button
     select_button = forms.Button(Text='Select All')
     select_button.Click += self.OnSelectClick
     # Clear button
     clear_button = forms.Button(Text='Clear')
     clear_button.Click += self.OnClearClick
     # Create layout
     layout = forms.TableLayout(Spacing=drawing.Size(5, 5))
     layout.Rows.Add(forms.TableRow(None, select_button, clear_button,
                                    None))
     return layout
Example #21
0
 def create_file_picker(title = 'file picker', 
                        filter = None,
                        file_path_changed_event_method = None):
                                                                
     file_picker = forms.FilePicker()
     file_picker.Title = title
     if filter:
         file_picker.Filters.Add(forms.FileFilter(filter, ('.'+filter)))
     if file_path_changed_event_method:
         file_picker.FilePathChanged += file_path_changed_event_method 
         
     return file_picker
Example #22
0
 def create_multidata_colum(index, type):
     
     #custom cell create event
     def create_multidata_custom_cell_event(eventArgs):
         try:
             row_values = eventArgs.Item
             control = None
             if type == 'DropDown':
                 control = forms.DropDown() 
             elif type == 'ListBox':
                 control = forms.ListBox()
             else:
                 return
             #drop down delegates
             def multidata_get_item_delegate(multidata_item):
                 return multidata_item.item
                 
             def multidata_get_selected_index_delegate():
                 return row_values.GetItemDataAt(index).SelectedIndex
                 
             def multidata_set_selected_index_delegate(sel_index):
                 row_values.GetItemDataAt(index).SelectedIndex = sel_index
                 #for test log:
                 #name = row_values.GetItemDataAt(0)
                 #num = row_values.GetItemDataAt(index).SelectedIndex 
                 #item = row_values.GetItemDataAt(index).GetItemValueAt(num)
                 #print name + " multidata is now set to " + item                         
                 
             control.ItemTextBinding = \
                 forms.DirectBinding.Delegate[MultiDataItem, System.String]\
                                     (multidata_get_item_delegate)
                                   
             delegate = forms.DirectBinding.Delegate[System.Int32](
                            multidata_get_selected_index_delegate, 
                            multidata_set_selected_index_delegate)
             control.SelectedIndexBinding.Bind(delegate)
             
             control.DataStore = row_values.GetItemDataAt(index)
             #control.BackgroundColor = drawing.Color(0,0,1)
             #control.ShowBorder = False
             #control.SelectedIndexChanged += self.OnSelectedIndexChanged
             print "creating..."
         except Exception as e:
             print e         
         return control        
     
     #create drop down custom cell and drop down column
     cell = forms.CustomCell()
     cell.CreateCell = create_multidata_custom_cell_event
     column = forms.GridColumn(DataCell = cell)
              
     return column              
Example #23
0
    def CreateLayouts(self):
        layoutButtons = forms.DynamicLayout()
        #layoutButtons.AddRow(self.tboxFileName)
        #layoutButtons.AddRow(self.comboBuildingNum)
        layoutButtons.AddRow(self.grid)
        layoutButtons.AddSeparateRow(None, self.btnCancel, self.btnApply)
        layoutButtons.Spacing = drawing.Size(1,1)
        layout = forms.DynamicLayout()
        #layout.AddSeparateRow(layoutFolder)
        layout.AddSeparateRow(layoutButtons)

        #5 - add the layout to the dialog
        self.Content = layout
Example #24
0
 def create_list_box(self):
     """
     Create the table row that contains the listbox.
     Called by create_form_controls
     """
     # Create the listbox
     self.m_listbox = forms.ListBox()
     self.m_listbox.Size = drawing.Size(200, 100)
     # Create the table row
     table_row = forms.TableRow()
     table_row.ScaleHeight = True
     table_row.Cells.Add(self.m_listbox)
     return table_row
Example #25
0
 def create_layout_from_control_matrix(control_matrix,
                                       padding=drawing.Padding(5, 5),
                                       scale_height = False,
                                       spacing = drawing.Size(5, 5)):
     layout = forms.TableLayout(Spacing = spacing)
     layout.Padding = padding
     for control_row in control_matrix:
         cells = [forms.TableCell(elem) for elem in control_row]
         row = forms.TableRow(cells)
         row.ScaleHeight = scale_height
         layout.Rows.Add(row)
         
     return layout 
Example #26
0
        def date_time_controls(is_enabled, picker_date_event_method,
                               slider_date_event_method,
                               picker_time_event_method,
                               slider_time_event_method):

            current_date_time = System.DateTime.Now
            #date slider and pickers
            date = forms.DateTimePicker()
            date.Mode = forms.DateTimePickerMode.Date
            date.Value = current_date_time
            date.Size = drawing.Size(30, 20)
            date.ValueChanged += picker_date_event_method
            date.Enabled = is_enabled
            #
            date_label = forms.Label(Text='Day of year:')
            date_label.Size = drawing.Size(140, 15)
            date_slider = EtoUtil.create_slider(
                value=current_date_time.Now.DayOfYear,
                min=1,
                max=365,
                snap_to_tick=False,
                tick_frequency=31,
                change_event_method=slider_date_event_method,
                is_enabled=is_enabled)

            # Time slider and picker
            time = forms.DateTimePicker()
            time.Mode = forms.DateTimePickerMode.Time
            time.Value = System.DateTime(1, 1, 1, current_date_time.Hour, 0, 0)
            time.Size = drawing.Size(30, 20)
            time.ValueChanged += picker_time_event_method
            time.Enabled = is_enabled
            #
            time_label = forms.Label(Text='Hour of day:')
            time_label.Size = drawing.Size(140, 15)
            time_slider = EtoUtil.create_slider(
                value=current_date_time.Hour,
                min=0,
                max=23,
                snap_to_tick=True,
                tick_frequency=1,
                change_event_method=slider_time_event_method,
                is_enabled=is_enabled)

            layout = EtoUtil.create_layout_from_control_matrix(
                [[date_label], [date_slider, date], [time_label],
                 [time_slider, time]])

            return layout, date, date_slider, time, time_slider
Example #27
0
 def DefaultTabs(self):
     # creates a tab control
     control = self.CreateTabControl()
     # create and add a tab page 1
     tab1 = forms.TabPage()
     tab1.Text = "Tab 1"
     tab1.Content = self.TabOne()
     control.Pages.Add(tab1)
     # create and add a tab page 2
     tab2 = forms.TabPage()
     tab2.Text = "Tab 2"
     tab2.Content = self.TabTwo()
     control.Pages.Add(tab2)
     # return
     return control
 def CreateCheckBoxes(self):
     # Create checkboxes
     self.DeleteInput = forms.CheckBox(Text='Delete input',
                                       Checked=self.Args.DeleteInput,
                                       ThreeState=False)
     self.PreserveTangents = forms.CheckBox(
         Text='Preserve tangent end directions',
         Checked=self.Args.PreserveTangents,
         ThreeState=False)
     # Create table layout
     layout = forms.DynamicLayout()
     layout.Spacing = drawing.Size(5, 5)
     layout.AddRow(self.DeleteInput)
     layout.AddRow(self.PreserveTangents)
     return layout
Example #29
0
 def AddObject(self, obj):
     item = forms.ListItem()
     item.Text = obj.ShortDescription(False)
     if obj.Name:
         item.Text += " - " + obj.Name
     item.Tag = obj.Id
     self.m_listbox.Items.Add(item)
Example #30
0
    def __init__(self, image, title='Image', width=None, height=None):
        super(ImageForm, self).__init__(title, width, height)
        self._image = None
        self.image = image

        view = forms.ImageView()
        view.Image = self.image
        self.Content = view