Skip to content

Commit b70e5c0

Browse files
committed
Remove propRepo dependency in SettingMenuController
1 parent e6280b1 commit b70e5c0

File tree

5 files changed

+156
-128
lines changed

5 files changed

+156
-128
lines changed

src/main/java/root/core/repository/constracts/PropertyRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ public interface PropertyRepository {
2222
void saveServerConnectionInfo(String filePath, Map<String, JschConnectionInfo> config);
2323

2424
void saveCommonConfig(Map<String, Object> values);
25+
26+
void saveCommonConfig(String key, String value);
2527

2628
void loadCombinedConfiguration();
2729

src/main/java/root/core/repository/implement/PropertyRepositoryImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,13 @@ public void saveCommonConfig(Map<String, Object> values) {
257257
}
258258
save("./config/common.properties", config);
259259
}
260+
261+
@Override
262+
public void saveCommonConfig(String key, String value) {
263+
PropertiesConfiguration config = getConfiguration("commonConfig");
264+
config.setProperty(key, value);
265+
save("./config/common.properties", config);
266+
}
260267

261268
private static PropertiesConfiguration load(String filePath) {
262269
Parameters param = new Parameters();

src/main/java/root/core/service/contracts/PropertyService.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import root.core.domain.JdbcConnectionInfo;
77
import root.core.domain.JschConnectionInfo;
88
import root.core.domain.MonitoringYN;
9+
import root.core.domain.enums.MonitoringType;
910
import root.core.domain.enums.RoundingDigits;
1011
import root.core.domain.enums.UsageUIType;
1112
import root.utils.UnitUtils.FileSize;
@@ -99,4 +100,44 @@ public interface PropertyService {
99100
* @return
100101
*/
101102
UsageUIType getDefaultUsageUIType();
103+
104+
/**
105+
* 공통 설정정보를 저장한다.
106+
*
107+
* @param key 설정정보 키
108+
* @param value 설정정보 값
109+
*/
110+
void saveCommonConfig(String key, String value);
111+
112+
/**
113+
* 최근 사용한 접속정보 설정정보를 저장한다.
114+
*
115+
* @param filePath
116+
*/
117+
void saveLastUseConnectionInfoSetting(String filePath);
118+
119+
/**
120+
* 접속정보 설정을 추가한다.
121+
*
122+
* @param filePath
123+
* @return
124+
*/
125+
String addConnectionInfoSetting(String filePath);
126+
127+
/**
128+
* 모니터링여부 Preset 설정을 추가한다.
129+
*
130+
* @param connInfoSetting
131+
* @param presetName
132+
*/
133+
void addMonitoringPreset(String connInfoSetting, String presetName);
134+
135+
/**
136+
* 모니터링여부 Preset 설정을 저장한다.
137+
*
138+
* @param presetName
139+
* @param settingedMonitoringYN
140+
*/
141+
void saveMonitoringPresetSetting(String presetName,
142+
Map<MonitoringType, Map<String, Boolean>> settingedMonitoringYN);
102143
}

src/main/java/root/core/service/implement/FilePropertyService.java

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ public List<String> getConnectionInfoList() {
5555
*/
5656
@Override
5757
public String getLastUseConnectionInfoFilePath() {
58-
return propRepo.getLastUseConnInfoFilePath();
58+
String filePath = propRepo.getLastUseConnInfoFilePath();
59+
return propRepo.isFileExist(filePath) ? filePath : null;
5960
}
6061

6162
/**
@@ -202,4 +203,70 @@ public RoundingDigits getDefaultRoundingDigits() {
202203
public UsageUIType getDefaultUsageUIType() {
203204
return UsageUIType.find(propRepo.getCommonResource("usage-ui-type"));
204205
}
206+
207+
/**
208+
* 공통 설정정보를 저장한다.
209+
*/
210+
@Override
211+
public void saveCommonConfig(String key, String value) {
212+
propRepo.saveCommonConfig(key, value);
213+
}
214+
215+
/**
216+
* 최근 사용한 접속정보 설정정보를 저장한다.
217+
*/
218+
@Override
219+
public void saveLastUseConnectionInfoSetting(String filePath) {
220+
PropertiesConfiguration rememberConfig = propRepo.getConfiguration("rememberConfig");
221+
rememberConfig.setProperty("filepath.config.lastuse", filePath.replace("\\", "/"));
222+
propRepo.save(rememberConfig.getString("filepath.config.remember"), rememberConfig);
223+
}
224+
225+
/**
226+
* 접속정보 설정을 추가한다.
227+
*/
228+
@Override
229+
public String addConnectionInfoSetting(String fileName) {
230+
String filePath = "./config/connectioninfo/" + fileName + ".properties";
231+
propRepo.createNewPropertiesFile(filePath, "ConnectionInfo");
232+
addMonitoringPreset(filePath, "default");
233+
return filePath;
234+
}
235+
236+
/**
237+
* 모니터링여부 Preset 설정을 추가한다.
238+
*/
239+
@Override
240+
public void addMonitoringPreset(String connInfoSetting, String presetName) {
241+
String connInfoFileName = connInfoSetting.substring(0, connInfoSetting.indexOf(".properties"));
242+
String filePath = "./config/monitoring/" + connInfoFileName + "/" + presetName + ".properties";
243+
244+
propRepo.createNewPropertiesFile(filePath, "Monitoring");
245+
246+
PropertiesConfiguration config = propRepo.getConfiguration("connInfoConfig");
247+
config.addProperty("monitoring.setting.preset." + presetName + ".filepath", filePath);
248+
propRepo.save(connInfoSetting, config);
249+
}
250+
251+
/**
252+
* 모니터링여부 Preset 설정을 저장한다.
253+
*/
254+
@Override
255+
public void saveMonitoringPresetSetting(String presetName,
256+
Map<MonitoringType, Map<String, Boolean>> settingedMonitoringYN) {
257+
PropertiesConfiguration config = new PropertiesConfiguration();
258+
String monitoringFilePath = propRepo.getMonitoringPresetMap().get(presetName);
259+
260+
if (!monitoringFilePath.isEmpty()) {
261+
for (MonitoringType type : settingedMonitoringYN.keySet()) {
262+
Map<String, Boolean> aliasMap = settingedMonitoringYN.get(type);
263+
for (String alias : aliasMap.keySet()) {
264+
String key = StringUtils.join(type.getName().replace(" ", "_"), ".", alias);
265+
config.setProperty(key, aliasMap.get(alias) ? "Y" : "N");
266+
}
267+
}
268+
propRepo.save(monitoringFilePath, config);
269+
propRepo.loadMonitoringInfoConfig(monitoringFilePath);
270+
}
271+
}
205272
}

0 commit comments

Comments
 (0)