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