11package root .javafx .Controller ;
22
33import java .net .URL ;
4- import java .sql .SQLException ;
54import java .util .ArrayList ;
65import java .util .List ;
76import java .util .ResourceBundle ;
1211import com .jfoenix .controls .JFXComboBox ;
1312
1413import de .jensd .fx .glyphs .fontawesome .FontAwesomeIcon ;
15- import javafx .beans .value .ChangeListener ;
16- import javafx .beans .value .ObservableValue ;
1714import javafx .fxml .FXML ;
1815import javafx .fxml .Initializable ;
1916import javafx .scene .Node ;
@@ -50,6 +47,9 @@ public class RunMenuController implements Initializable {
5047 @ FXML
5148 AnchorPane presetSettingAP ;
5249
50+ @ FXML
51+ JFXComboBox <String > presetFileListComboBox ;
52+
5353 @ FXML
5454 AnchorPane dbPresetAP ;
5555
@@ -95,7 +95,7 @@ public void initialize(URL location, ResourceBundle resources) {
9595 } else {
9696 connInfoFileListComboBox .getItems ().addAll (connInfoFileList );
9797 }
98-
98+
9999 // 1-2. 모니터링 접속정보 설정파일 콤보박스 아이템 변경 리스너 설정
100100 connInfoFileListComboBox .valueProperty ().addListener ((observable , oldValue , newValue ) -> {
101101 propService .loadConnectionInfoConfig (newValue );
@@ -105,42 +105,43 @@ public void initialize(URL location, ResourceBundle resources) {
105105 });
106106
107107 // 1-3. 모니터링 접속정보 설정파일 콤보박스 초기값 설정
108- String lastUseConnInfoFile = propService .getLastUseConnectionInfo ();
108+ String lastUseConnInfoFile = propService .getLastUseConnectionInfoFilePath ();
109109 if (StringUtils .isEmpty (lastUseConnInfoFile ) || !connInfoFileList .contains (lastUseConnInfoFile )) {
110110 // 최근 사용된 접속정보 설정파일이 없거나 현재 존재하지 않는 경우, 첫 번째 설정파일 선택
111111 connInfoFileListComboBox .getSelectionModel ().selectFirst ();
112112 } else {
113113 connInfoFileListComboBox .getSelectionModel ().select (lastUseConnInfoFile );
114114 }
115115
116- // 모니터링 여부 리스트 TreeTableView
117- List <DBMonitoringYN > list1 = new ArrayList <>();
118- list1 .add (new DBMonitoringYN ("DB1" , "N" , "N" , "N" ));
119- list1 .add (new DBMonitoringYN ("DB2" , "N" , "N" , "N" ));
120- list1 .add (new DBMonitoringYN ("DB3" , "N" , "N" , "N" ));
121-
122- CustomTreeTableView <DBMonitoringYN > presetCtv1 = new CustomTreeTableView <>("모니터링 여부 리스트" , FontAwesomeIcon .LIST );
123- presetCtv1 .addMonitoringInstanceColumn ("Instance" , "alias" );
124- presetCtv1 .addMonitoringYNTableColumn ("Archive" , "archiveUsageYN" );
125- presetCtv1 .addMonitoringYNTableColumn ("Table Space" , "tableSpaceUsageYN" );
126- presetCtv1 .addMonitoringYNTableColumn ("ASM Disk" , "asmDiskUsageYN" );
127- presetCtv1 .addTreeTableItem (new DBMonitoringYN ("DB" ), list1 , FontAwesomeIcon .DATABASE );
128- setAnchorPaneAnchor (presetCtv1 , 0 , 0 , 0 , 0 );
129- dbPresetAP .getChildren ().add (presetCtv1 );
130-
131- List <ServerMonitoringYN > list2 = new ArrayList <>();
132- list2 .add (new ServerMonitoringYN ("Server1" , "Y" ));
133- list2 .add (new ServerMonitoringYN ("Server2" , "Y" ));
134- list2 .add (new ServerMonitoringYN ("Server3" , "Y" ));
135- list2 .add (new ServerMonitoringYN ("Server4" , "Y" ));
136-
137- CustomTreeTableView <ServerMonitoringYN > presetCtv2 = new CustomTreeTableView <>("모니터링 여부 리스트" ,
138- FontAwesomeIcon .LIST );
139- presetCtv2 .addMonitoringInstanceColumn ("Instance" , "alias" );
140- presetCtv2 .addMonitoringYNTableColumn ("OS Disk" , "osDiskUsageYN" );
141- presetCtv2 .addTreeTableItem (new ServerMonitoringYN ("Server" ), list2 , FontAwesomeIcon .SERVER );
142- setAnchorPaneAnchor (presetCtv2 , 0 , 0 , 0 , 0 );
143- serverPresetAP .getChildren ().add (presetCtv2 );
116+ /* 2. 모니터링 여부 설정 */
117+ // 2-1. 모니터링 여부 Preset 콤보박스 아이템 설정
118+ String curConnInfoFile = connInfoFileListComboBox .getSelectionModel ().getSelectedItem ();
119+ propService .loadMonitoringInfoConfig (curConnInfoFile );
120+ List <String > presetFileList = propService .getMonitoringPresetNameList ();
121+ if (presetFileList == null || presetFileList .size () == 0 ) {
122+ // TODO 모니터링 여부 Preset 설정파일이 없는 경우
123+ // addMonitoringPresetPreview();
124+ } else {
125+ presetFileListComboBox .getItems ().addAll (presetFileList );
126+ }
127+
128+ // 2-2. 모니터링 여부 Preset 콤보박스 아이템 변경 리스너 설정
129+ presetFileListComboBox .valueProperty ().addListener ((observable , oldValue , newValue ) -> {
130+ System .out .println (newValue );
131+ System .out .println (propService .getMonitoringPresetFilePath (newValue ));
132+ // List<DBMonitoringYN> dbPresets = propService.getMonitoringDBNameList();
133+ // List<ServerMonitoringYN> serverPresets = propService.getMonitoringServerNameList();
134+ // addMonitoringPresetPreview(dbPresets, serverPresets);
135+ });
136+
137+ // 2-3. 모니터링 여부 Preset 콤보박스 초기값 설정
138+ String lastUsePresetFileName = propService .getLastUsePresetFileName (curConnInfoFile );
139+ if (StringUtils .isEmpty (lastUsePresetFileName ) || !presetFileList .contains (lastUsePresetFileName )) {
140+ // 최근 사용된 모니터링 여부 Preset 설정파일이 없거나 현재 존재하지 않는 경우, 첫 번째 설정파일 선택
141+ presetFileListComboBox .getSelectionModel ().selectFirst ();
142+ } else {
143+ presetFileListComboBox .getSelectionModel ().select (lastUsePresetFileName );
144+ }
144145
145146 // 실행결과 TableView 생성 및 Column 추가
146147 MonitoringTableView <ArchiveUsage > archiveTable = addMonitoringTableView (archiveAP , ArchiveUsage .class );
@@ -211,7 +212,7 @@ private <T> MonitoringTableView<T> addMonitoringTableView(AnchorPane parent,
211212 }
212213
213214 /**
214- * 모니터링 접속정보를 보여주는 TreeView를 생성 및 추가한다.
215+ * 설정된 모니터링 접속정보를 보여주는 TreeView를 생성 및 추가한다.
215216 *
216217 * @param dbNameList
217218 * @param serverNameList
@@ -224,4 +225,32 @@ private void addMonitoringConnInfoPreview(List<String> dbNameList, List<String>
224225 setAnchorPaneAnchor (connInfoCtv , 80 , 0 , 0 , 0 );
225226 connInfoSettingAP .getChildren ().add (connInfoCtv );
226227 }
228+
229+ /**
230+ * 설정된 모니터링 여부 Preset을 보여주는 TreeTableView를 생성 및 추가한다.
231+ *
232+ * @param dbPresetList
233+ * @param serverPresetList
234+ */
235+ private void addMonitoringPresetPreview (List <DBMonitoringYN > dbPresetList ,
236+ List <ServerMonitoringYN > serverPresetList ) {
237+
238+ // 모니터링 여부 리스트 TreeTableView - DB
239+ CustomTreeTableView <DBMonitoringYN > dbCtv = new CustomTreeTableView <>("" , FontAwesomeIcon .LIST );
240+ dbCtv .addMonitoringInstanceColumn ("Instance" , "alias" );
241+ dbCtv .addMonitoringYNTableColumn ("Archive" , "archiveUsageYN" );
242+ dbCtv .addMonitoringYNTableColumn ("Table Space" , "tableSpaceUsageYN" );
243+ dbCtv .addMonitoringYNTableColumn ("ASM Disk" , "asmDiskUsageYN" );
244+ dbCtv .addTreeTableItem (new DBMonitoringYN ("DB" ), dbPresetList , FontAwesomeIcon .DATABASE );
245+ setAnchorPaneAnchor (dbCtv , 0 , 0 , 0 , 0 );
246+ dbPresetAP .getChildren ().add (dbCtv );
247+
248+ // 모니터링 여부 리스트 TreeTableView - Server
249+ CustomTreeTableView <ServerMonitoringYN > serverCtv = new CustomTreeTableView <>("" , FontAwesomeIcon .LIST );
250+ serverCtv .addMonitoringInstanceColumn ("Instance" , "alias" );
251+ serverCtv .addMonitoringYNTableColumn ("OS Disk" , "osDiskUsageYN" );
252+ serverCtv .addTreeTableItem (new ServerMonitoringYN ("Server" ), serverPresetList , FontAwesomeIcon .SERVER );
253+ setAnchorPaneAnchor (serverCtv , 0 , 0 , 0 , 0 );
254+ serverPresetAP .getChildren ().add (serverCtv );
255+ }
227256}
0 commit comments