1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.actions;
14
15 import java.awt.event.ActionEvent;
16 import java.awt.event.ActionListener;
17
18 import javax.swing.JCheckBox;
19 import javax.swing.JTextField;
20
21 import com.eviware.soapui.SoapUI;
22 import com.eviware.soapui.model.settings.Settings;
23 import com.eviware.soapui.settings.UISettings;
24 import com.eviware.soapui.support.components.SimpleForm;
25 import com.eviware.soapui.support.types.StringToStringMap;
26 import com.eviware.soapui.ui.desktop.DesktopRegistry;
27
28 /***
29 * Preferences class for UISettings
30 *
31 * @author ole.matzura
32 */
33
34 public class UIPrefs implements Prefs
35 {
36 public static final String CLOSE_PROJECTS = "Close Projects";
37 public static final String ORDER_PROJECTS = "Order Projects";
38 public static final String ORDER_TESTSUITES = "Order TestSuites";
39 public static final String ORDER_REQUESTS = "Order Requests";
40 public static final String CREATE_BACKUP = "Create Backup";
41 public static final String BACKUP_FOLDER = "Backup Folder";
42 public static final String DESKTOP_TYPE = "Desktop Type";
43 public static final String NATIVE_LAF = "Native L&F";
44 public static final String ENABLE_GROOVY_LOG_DURING_LOADTEST = "Do not disable Groovy Log";
45 public static final String SHOW_LOGS_AT_STARTUP = "Show Log Tabs";
46 public static final String AUTOSAVE_INTERVAL = "AutoSave Interval";
47
48 private SimpleForm editorForm;
49 private final String title;
50 private JCheckBox backupCheckBox;
51 private JTextField backupFolder;
52
53 public UIPrefs(String title)
54 {
55 this.title = title;
56 }
57
58 public String getTitle()
59 {
60 return title;
61 }
62
63 public SimpleForm getForm()
64 {
65 if( editorForm == null )
66 {
67 editorForm = new SimpleForm();
68 editorForm.addSpace( 5 );
69 editorForm.appendCheckBox( CLOSE_PROJECTS, "(close all projects on startup)", false );
70 editorForm.appendSeparator();
71 editorForm.appendCheckBox( ORDER_PROJECTS, "(orders Projects alphabetically in tree)", false );
72 editorForm.appendCheckBox( ORDER_REQUESTS, "(orders Requests alphabetically in tree)", false );
73 editorForm.appendCheckBox( ORDER_TESTSUITES, "(orders TestSuites alphabetically in tree)", false );
74 editorForm.appendSeparator();
75
76 backupCheckBox = editorForm.appendCheckBox( CREATE_BACKUP, "(backup project files before they are saved)", true );
77 backupFolder = editorForm.appendTextField( BACKUP_FOLDER, "(folder to backup to, can be both relative or absolut)" );
78 backupCheckBox.addActionListener( new ActionListener() {
79
80 public void actionPerformed(ActionEvent e)
81 {
82 backupFolder.setEnabled( backupCheckBox.isSelected() );
83 }} );
84
85 editorForm.appendTextField( AUTOSAVE_INTERVAL, "Sets the autosave interval in minutes, 0 = off" );
86
87 if( SoapUI.isStandalone())
88 {
89 editorForm.appendSeparator();
90 editorForm.appendComboBox( DESKTOP_TYPE, DesktopRegistry.getInstance().getNames(),
91 "Select the type of desktop to use" );
92 editorForm.appendCheckBox( NATIVE_LAF, "(use native Look & Feel - requires restart)", true );
93 }
94
95 editorForm.appendSeparator();
96 editorForm.appendCheckBox( ENABLE_GROOVY_LOG_DURING_LOADTEST, "(do not disable the groovy log when running LoadTests)", true );
97
98 if( SoapUI.isStandalone())
99 editorForm.appendCheckBox( SHOW_LOGS_AT_STARTUP, "(shows log tabs when starting soapUI)", false );
100 }
101
102 return editorForm;
103 }
104
105 public void getFormValues(Settings settings)
106 {
107 StringToStringMap values = new StringToStringMap();
108 editorForm.getValues( values );
109 storeValues(values, settings);
110 }
111
112 public void storeValues(StringToStringMap values, Settings settings)
113 {
114 settings.setBoolean( UISettings.CLOSE_PROJECTS, values.getBoolean( CLOSE_PROJECTS ));
115 settings.setBoolean( UISettings.ORDER_PROJECTS, values.getBoolean( ORDER_PROJECTS ));
116 settings.setBoolean( UISettings.ORDER_REQUESTS, values.getBoolean( ORDER_REQUESTS ));
117 settings.setBoolean( UISettings.ORDER_TESTSUITES, values.getBoolean( ORDER_TESTSUITES ));
118 settings.setBoolean( UISettings.CREATE_BACKUP, values.getBoolean( CREATE_BACKUP ));
119 settings.setString( UISettings.BACKUP_FOLDER, values.get( BACKUP_FOLDER ));
120 settings.setString( UISettings.AUTO_SAVE_INTERVAL, values.get( AUTOSAVE_INTERVAL ));
121
122 if( SoapUI.isStandalone())
123 {
124 settings.setString( UISettings.DESKTOP_TYPE, values.get( DESKTOP_TYPE ));
125 settings.setBoolean( UISettings.NATIVE_LAF, values.getBoolean( NATIVE_LAF ));
126 }
127
128 settings.setBoolean( UISettings.DONT_DISABLE_GROOVY_LOG, values.getBoolean( ENABLE_GROOVY_LOG_DURING_LOADTEST ));
129 if( SoapUI.isStandalone())
130 settings.setBoolean( UISettings.SHOW_LOGS_AT_STARTUP, values.getBoolean( SHOW_LOGS_AT_STARTUP ));
131
132 SoapUI.initAutoSaveTimer();
133 }
134
135 public void setFormValues(Settings settings)
136 {
137 editorForm.setValues( getValues(settings) );
138 backupFolder.setEnabled( settings.getBoolean( UISettings.CREATE_BACKUP ) );
139 }
140
141 public StringToStringMap getValues(Settings settings)
142 {
143 StringToStringMap values = new StringToStringMap();
144 values.put( CLOSE_PROJECTS, settings.getBoolean( UISettings.CLOSE_PROJECTS ));
145 values.put( ORDER_PROJECTS, settings.getBoolean( UISettings.ORDER_PROJECTS ));
146 values.put( ORDER_REQUESTS, settings.getBoolean( UISettings.ORDER_REQUESTS ));
147 values.put( ORDER_TESTSUITES, settings.getBoolean( UISettings.ORDER_TESTSUITES ));
148 values.put( CREATE_BACKUP, settings.getBoolean( UISettings.CREATE_BACKUP ));
149 values.put( BACKUP_FOLDER, settings.getString( UISettings.BACKUP_FOLDER, "" ));
150 values.put( AUTOSAVE_INTERVAL, settings.getString( UISettings.AUTO_SAVE_INTERVAL, "0" ));
151
152 if( SoapUI.isStandalone())
153 {
154 values.put( DESKTOP_TYPE, settings.getString( UISettings.DESKTOP_TYPE, SoapUI.DEFAULT_DESKTOP ));
155 values.put( NATIVE_LAF, settings.getBoolean( UISettings.NATIVE_LAF ));
156 }
157
158 values.put( ENABLE_GROOVY_LOG_DURING_LOADTEST, settings.getBoolean( UISettings.DONT_DISABLE_GROOVY_LOG ));
159 if( SoapUI.isStandalone())
160 values.put( SHOW_LOGS_AT_STARTUP, settings.getBoolean( UISettings.SHOW_LOGS_AT_STARTUP ));
161
162 return values;
163 }
164 }