1 26 30 31 package org.omg.lifl.eclipse.plugin.project.utils.SWT; 32 33 import org.eclipse.swt.SWT; 34 import org.eclipse.swt.events.ModifyEvent; 35 import org.eclipse.swt.events.ModifyListener; 36 import org.eclipse.swt.layout.RowLayout; 37 import org.eclipse.swt.widgets.Button; 38 import org.eclipse.swt.widgets.DirectoryDialog; 39 import org.eclipse.swt.widgets.Event; 40 import org.eclipse.swt.widgets.Group; 41 import org.eclipse.swt.widgets.Label; 42 import org.eclipse.swt.widgets.Listener; 43 import org.eclipse.swt.widgets.Text; 44 import org.omg.lifl.eclipse.plugin.project.OpenCCM.utils.ProjectMessages; 45 46 54 public abstract class DirectoryChooser { 55 56 private Group _parent; 57 protected Group subGroup; 58 protected boolean subGroupVisible; 59 60 private DirectoryDialog directoryDialog; 61 protected Text _text; 62 protected Label _label; 63 protected Button _btnChooser; 64 protected SetterGroupPreference _preference; 65 66 private static final String BLANK_END = 67 ProjectMessages.getString("DirectoryChooser.Blank_space"); 68 69 74 public DirectoryChooser(Group parent, SetterGroupPreference preference) { 75 subGroupVisible = true; 76 set_preference(preference); 77 directoryDialog = new DirectoryDialog(parent.getShell()); 78 set_parent(parent); 79 groupToSet(get_parent()); 80 } 81 82 86 public void groupToSet(Group parent_group) { 87 String buttonTittle = 88 ProjectMessages.getString("DirectoryChooser.BrowseButtonLabel"); 89 subGroup = new Group(parent_group, SWT.NONE); 90 subGroup.setLayout(new RowLayout()); 91 subGroup.setText(_preference.get_GroupLabel()); 92 93 setCheckButton(); 94 95 _label = new Label(subGroup, SWT.LEFT); 96 _label.setText(_preference.get_Label()); 97 set_text(new Text(subGroup, SWT.SINGLE | SWT.BORDER)); 98 _text.setText(_preference.get_Name()); 99 _text.addModifyListener(new ModifyListener() { 100 public void modifyText(ModifyEvent e) { 101 _preference.set_Name(_text.getText().trim()); 103 } 104 }); 105 106 directoryDialog.setFilterPath(_preference.get_Name()); 107 _btnChooser = new Button(subGroup, SWT.NONE); 108 _btnChooser.setText(buttonTittle); 109 110 _btnChooser.addListener(SWT.Selection, new Listener() { 111 112 public void handleEvent(Event e) { 113 String buffer = directoryDialog.open(); 114 if (buffer != null) 115 config(buffer); 116 } 117 }); 118 119 } 120 121 124 protected abstract void config(String buffer); 125 126 129 protected abstract void setCheckButton(); 130 131 134 public Text get_text() { 135 return _text; 136 } 137 138 141 public void set_text(Text text) { 142 _text = text; 143 } 144 145 148 public SetterGroupPreference get_preference() { 149 return _preference; 150 } 151 152 155 public void set_preference(SetterGroupPreference preference) { 156 _preference = preference; 157 } 158 159 162 public Group get_parent() { 163 return _parent; 164 } 165 166 170 public void set_parent(Group group) { 171 _parent = group; 172 } 173 174 177 public Group getSubGroup() { 178 return subGroup; 179 } 180 181 185 public void setSubGroup(Group group) { 186 subGroup = group; 187 } 188 189 192 public boolean isSubGroupVisible() { 193 return subGroupVisible; 194 } 195 196 199 public void setSubGroupVisible(boolean b) { 200 subGroupVisible = b; 201 } 202 203 } 204 | Popular Tags |