ControlsPane
This class is tasked with controlling the addition of shapes.
Contents
classdef ControlsPane < handle
% This defines the ControlsPane class. % URL : $URL: $ % Log : $Id: ControlsPane.html,v 1.1 2008/07/23 12:51:19 jberg Exp $ % Copyright (c) 2008 The MathWorks, Inc.
Class Properties
properties ( SetAccess = 'private', GetAccess = 'public' ) pane; % (javax.swing.JPanel) end properties ( SetAccess = 'private', GetAccess = 'private' ) bodyBuilder; % (BodyBuilder) end methods
Constructor
function obj = ControlsPane(bodyBuilder) % Load function handles fh = svSupport; % Build the Gui and set pane obj.pane = obj.build_gui(fh); obj.bodyBuilder = bodyBuilder; end
SET Methods
function set.bodyBuilder(obj, in) prop_name = 'bodyBuilder'; prop_type = 'BodyBuilder'; [valid_flag in] = Validate.SCALAR(in,'type',prop_type); if valid_flag obj.(prop_name) = in; end end function set.pane(obj, in) prop_name = 'pane'; prop_type = 'javax.swing.JPanel'; [valid_flag in] = Validate.SCALAR(in,'type',prop_type); if valid_flag obj.(prop_name) = in; end end
end methods ( Access = 'private' )
Private HELPER Methods
function pane = build_gui(obj,fh) import java.awt.*; import javax.swing.table.*; % ============================================================== % CONTROL_PANE CONSISTS OF: % 1. Button (Add Shape) % 2. Popup (Shape Selection) % Preferred dimensions pref.btnWidth = 30; pref.btnHeight = 20; pref.comboWidth = 100; pref.comboHeight= 20; % ============================================================== % CONTROL_PANE pane = javaObjectEDT('javax.swing.JPanel',GridBagLayout); pane.setBorder(javax.swing.BorderFactory.createTitledBorder... ('Controls')); % 1. Button (Add Shape) add_Button = javaObjectEDT('javax.swing.JButton','Add Shape'); add_Button.setEnabled(true); add_Button.setPreferredSize(Dimension... (pref.btnWidth,pref.btnHeight)) gb = GridBagConstraints; gb.gridx = 0; gb.gridy = 0; gb.fill = gb.BOTH; gb.insets = Insets(5,5,5,5); set(handle(add_Button, 'CallbackProperties'), ... 'ActionPerformedCallback',... {fh.add_shape_ActionPerformedCallback,obj}); pane.add(add_Button,gb); % 2. Popup (Shape Selection) shape_ComboBox = javaObjectEDT('javax.swing.JComboBox'); shape_ComboBox.setEnabled(true); shape_ComboBox.setPreferredSize(Dimension... (pref.comboWidth,pref.comboHeight)); set(handle(shape_ComboBox, 'CallbackProperties'),... 'ActionPerformedCallback', ... {fh.change_active_prototype_ActionPerformedCallback,obj}); shape_ComboBox.addItem('Shape Assembly'); % this is the default selection shape_ComboBox.addItem('Brick'); shape_ComboBox.addItem('Cone'); shape_ComboBox.addItem('Cylinder'); % shape_ComboBox.addItem('Pyramid'); shape_ComboBox.addItem('Sphere'); % shape_ComboBox.addItem('Tetrahedron'); shape_ComboBox.addItem('Torus'); shape_ComboBox.setAlignmentX(shape_ComboBox.LEFT_ALIGNMENT); gb = GridBagConstraints; gb.gridx = 0; gb.gridy = 1; gb.insets = Insets(5,5,5,5); gb.fill = gb.BOTH; pane.add(shape_ComboBox,gb); end
end
end