Skip to content

Commit 00c8e9a

Browse files
committed
Show monitoring datetime in tableColumn value
1 parent f9f0bc1 commit 00c8e9a

File tree

2 files changed

+33
-6
lines changed

2 files changed

+33
-6
lines changed

src/main/java/root/javafx/Controller/MonitoringAPController.java

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@
77
import java.util.Collections;
88
import java.util.HashMap;
99
import java.util.List;
10+
import java.util.Locale;
1011
import java.util.Map;
1112
import java.util.stream.Collectors;
1213

1314
import com.jfoenix.controls.JFXComboBox;
1415

1516
import javafx.beans.binding.Bindings;
17+
import javafx.beans.property.SimpleStringProperty;
18+
import javafx.beans.value.ObservableValue;
1619
import javafx.collections.FXCollections;
20+
import javafx.collections.ObservableList;
1721
import javafx.event.ActionEvent;
1822
import javafx.fxml.FXML;
1923
import javafx.fxml.FXMLLoader;
@@ -27,6 +31,7 @@
2731
import javafx.scene.control.cell.PropertyValueFactory;
2832
import javafx.scene.layout.AnchorPane;
2933
import javafx.scene.layout.BorderPane;
34+
import javafx.util.Callback;
3035
import root.core.domain.MonitoringResult;
3136
import root.core.domain.enums.UsageUIType;
3237
import root.core.repository.constracts.PropertyRepository;
@@ -37,6 +42,7 @@
3742
import root.javafx.CustomView.UsageUI.UsageUI;
3843
import root.javafx.CustomView.UsageUI.UsageUIFactory;
3944
import root.utils.AlertUtils;
45+
import root.utils.DateUtils;
4046
import root.utils.UnitUtils.FileSize;
4147

4248
public class MonitoringAPController<T extends MonitoringResult> extends BorderPane {
@@ -175,7 +181,14 @@ public void syncTableData(String id, int index) {
175181
Map<String, List<T>> data = tableDataMap.get(id);
176182
List<String> times = new ArrayList<>(data.keySet());
177183
Collections.sort(times);
178-
monitoringResultTV.setItems(FXCollections.observableList(data.get(times.get(index))));
184+
185+
ObservableList<T> tableData = null;
186+
if(times.size() > index) {
187+
tableData = FXCollections.observableList(data.get(times.get(index)));
188+
}
189+
190+
monitoringResultTV.setItems(tableData);
191+
monitoringResultTV.refresh();
179192
}
180193

181194
/**
@@ -227,6 +240,19 @@ public <E> void addAndSetPropertyTableColumn(Class<E> fieldType, String fieldNam
227240
});
228241
}
229242

243+
if(fieldName.equals("monitoringDateTime")) {
244+
tc.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<T, E>, ObservableValue<E>>() {
245+
@Override
246+
public ObservableValue<E> call(TableColumn.CellDataFeatures<T, E> cell) {
247+
SimpleStringProperty property = new SimpleStringProperty();
248+
String value = DateUtils.convertDateFormat("yyyyMMddHHmmss", "yyyy/MM/dd HH:mm:ss",
249+
cell.getValue().getMonitoringDateTime(), Locale.KOREA);
250+
property.setValue(value);
251+
return (ObservableValue<E>) property;
252+
}
253+
});
254+
}
255+
230256
monitoringResultTV.getColumns().add(tc);
231257
}
232258

@@ -255,13 +281,14 @@ public void run(ActionEvent e) {
255281

256282
// Clear data
257283
clearTableData(selected);
284+
syncTableData(selected, 0);
258285

259286
Map<String, List<T>> allDataList = inquiryMonitoringHistory();
260287
if (allDataList == null || allDataList.size() == 0) {
261288
AlertUtils.showAlert(AlertType.INFORMATION, "조회결과 없음", "해당일자의 모니터링 기록이 없습니다.");
262289
return;
263290
}
264-
291+
265292
// Add and Sync data
266293
addTableDataSet(selected, allDataList);
267294
syncTableData(selected, 0);

src/main/java/root/javafx/Controller/RunMenuController.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ public void initialize(URL location, ResourceBundle resources) {
143143
archiveUsageTCM.put("가용 공간", new TypeAndFieldName(Double.class, "reclaimableSpace"));
144144
archiveUsageTCM.put("사용중인 공간", new TypeAndFieldName(Double.class, "usedSpace"));
145145
archiveUsageTCM.put("사용량(%)", new TypeAndFieldName(Double.class, "usedPercent"));
146-
archiveUsageTCM.put("모니터링일시", new TypeAndFieldName(String.class, "dnt"));
146+
archiveUsageTCM.put("모니터링일시", new TypeAndFieldName(String.class, "monitoringDateTime"));
147147
initAndAddMonitoringAnchorPane(archiveUsageMAP, archiveUsageTabAP, dbComboBoxLabel, dbComboBoxItems, archiveUsageTCM);
148148

149149
// TableSpace Usage TableView Setting
@@ -153,7 +153,7 @@ public void initialize(URL location, ResourceBundle resources) {
153153
tableSpaceUsageTCM.put("가용 공간", new TypeAndFieldName(Double.class, "freeSpace"));
154154
tableSpaceUsageTCM.put("사용중인 공간", new TypeAndFieldName(Double.class, "usedSpace"));
155155
tableSpaceUsageTCM.put("사용량(%)", new TypeAndFieldName(Double.class, "usedPercent"));
156-
tableSpaceUsageTCM.put("모니터링일시", new TypeAndFieldName(String.class, "monitoringDate"));
156+
tableSpaceUsageTCM.put("모니터링일시", new TypeAndFieldName(String.class, "monitoringDateTime"));
157157
initAndAddMonitoringAnchorPane(tableSpaceUsageMAP, tableSpaceUsageTabAP, dbComboBoxLabel, dbComboBoxItems, tableSpaceUsageTCM);
158158

159159
// ASM Disk USage TableView Setting
@@ -165,7 +165,7 @@ public void initialize(URL location, ResourceBundle resources) {
165165
asmDiskUsageTCM.put("가용 공간", new TypeAndFieldName(Double.class, "freeSpace"));
166166
asmDiskUsageTCM.put("사용중인 공간", new TypeAndFieldName(Double.class, "usedSpace"));
167167
asmDiskUsageTCM.put("사용량(%)", new TypeAndFieldName(Double.class, "usedPercent"));
168-
asmDiskUsageTCM.put("모니터링일시", new TypeAndFieldName(String.class, "monitoringDate"));
168+
asmDiskUsageTCM.put("모니터링일시", new TypeAndFieldName(String.class, "monitoringDateTime"));
169169
initAndAddMonitoringAnchorPane(asmDiskUsageMAP, asmDiskUsageTabAP, dbComboBoxLabel, dbComboBoxItems, asmDiskUsageTCM);
170170

171171
// OS Disk Usage TableView Setting
@@ -176,7 +176,7 @@ public void initialize(URL location, ResourceBundle resources) {
176176
osDiskUsageTCM.put("가용 공간", new TypeAndFieldName(Double.class, "freeSpace"));
177177
osDiskUsageTCM.put("사용중인 공간", new TypeAndFieldName(Double.class, "usedSpace"));
178178
osDiskUsageTCM.put("사용량(%)", new TypeAndFieldName(Double.class, "usedPercent"));
179-
osDiskUsageTCM.put("모니터링일시", new TypeAndFieldName(String.class, "monitoringDate"));
179+
osDiskUsageTCM.put("모니터링일시", new TypeAndFieldName(String.class, "monitoringDateTime"));
180180
initAndAddMonitoringAnchorPane(osDiskUsageMAP, osDiskUsageTabAP, serverComboBoxLabel, serverComboBoxItems, osDiskUsageTCM);
181181

182182
// TODO TableColumn 속성을 설정하는 메서드를 따로 구분해보자. 객체를 생성해서 전달하는 방법도 고려하기

0 commit comments

Comments
 (0)