Autopsy 4.22.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
AbstractLoadableComponent.java
Go to the documentation of this file.
1/*
2 * Autopsy Forensic Browser
3 *
4 * Copyright 2019 Basis Technology Corp.
5 * Contact: carrier <at> sleuthkit <dot> org
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 */
19package org.sleuthkit.autopsy.datasourcesummary.uiutils;
20
21import java.util.Collection;
22import java.util.logging.Level;
23import javax.swing.JPanel;
24import org.openide.util.NbBundle;
25import org.sleuthkit.autopsy.coreutils.Logger;
26
30@NbBundle.Messages({
31 "AbstractLoadableComponent_loadingMessage_defaultText=Loading results...",
32 "AbstractLoadableComponent_errorMessage_defaultText=There was an error loading results.",
33 "AbstractLoadableComponent_noDataExists_defaultText=No data exists.",})
34public abstract class AbstractLoadableComponent<T> extends JPanel implements LoadableComponent<T> {
35
36 private static final long serialVersionUID = 1L;
37
41 public static final String DEFAULT_LOADING_MESSAGE = Bundle.AbstractLoadableComponent_loadingMessage_defaultText();
42
46 public static final String DEFAULT_ERROR_MESSAGE = Bundle.AbstractLoadableComponent_errorMessage_defaultText();
47
51 public static final String DEFAULT_NO_RESULTS_MESSAGE = Bundle.AbstractLoadableComponent_noDataExists_defaultText();
52
53 private static final Logger logger = Logger.getLogger(AbstractLoadableComponent.class.getName());
54
58 public static String getDefaultErrorMessage() {
60 }
61
65 public static String getDefaultNoResultsMessage() {
67 }
68
75 public synchronized void showMessage(String message) {
76 setResults(null);
77 setMessage(true, message);
78 repaint();
79 }
80
88
96 public synchronized void showResults(T data) {
97 setMessage(false, null);
98 setResults(data);
99 repaint();
100 }
101
114 public void showDataFetchResult(DataFetchResult<T> result, String errorMessage, String noResultsMessage) {
115 if (result == null) {
116 logger.log(Level.SEVERE, "Null data fetch result received.");
117 return;
118 }
119
120 switch (result.getResultType()) {
121 case SUCCESS:
122 T data = result.getData();
123 if (data == null || (data instanceof Collection<?> && ((Collection<?>) data).isEmpty())) {
124 showMessage(noResultsMessage);
125 } else {
126 showResults(data);
127 }
128 break;
129 case ERROR:
130 // if there is an error, log accordingly, set result list to
131 // empty and display error message
132 logger.log(Level.WARNING, "An exception was caused while results were loaded.", result.getException());
133 showMessage(errorMessage);
134 break;
135 default:
136 // an unknown loading state was specified. log accordingly.
137 logger.log(Level.SEVERE, "No known loading state was found in result.");
138 break;
139 }
140 }
141
153
161 protected abstract void setMessage(boolean visible, String message);
162
169 protected abstract void setResults(T data);
170}
synchronized static Logger getLogger(String name)
Definition Logger.java:124
abstract void setMessage(boolean visible, String message)
void showDataFetchResult(DataFetchResult< T > result, String errorMessage, String noResultsMessage)

Copyright © 2012-2024 Sleuth Kit Labs. Generated on:
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.