mirror of
https://github.com/elisspace/autopsy.git
synced 2026-09-04 06:50:00 +00:00
Merge remote-tracking branch 'upstream/develop' into 3304_welcomeScreen
This commit is contained in:
@@ -30,6 +30,7 @@ import java.util.logging.Level;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.SortOrder;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.event.ListSelectionEvent;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
import javax.swing.table.TableColumn;
|
||||
@@ -277,21 +278,30 @@ final class MultiUserCasesPanel extends javax.swing.JPanel {
|
||||
*/
|
||||
private void openCase(Path caseMetadataFilePath) {
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
||||
try {
|
||||
StartupWindowProvider.getInstance().close();
|
||||
if (parentDialog != null) {
|
||||
parentDialog.setVisible(false);
|
||||
}
|
||||
MultiUserCaseManager.getInstance().openCase(caseMetadataFilePath);
|
||||
} catch (CaseActionException | MultiUserCaseManager.MultiUserCaseManagerException ex) {
|
||||
if (null != ex.getCause() && !(ex.getCause() instanceof CaseActionCancelledException)) {
|
||||
LOGGER.log(Level.SEVERE, String.format("Error opening case with metadata file path %s", caseMetadataFilePath), ex); //NON-NLS
|
||||
MessageNotifyUtil.Message.error(ex.getCause().getLocalizedMessage());
|
||||
}
|
||||
StartupWindowProvider.getInstance().open();
|
||||
} finally {
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
|
||||
|
||||
StartupWindowProvider.getInstance().close();
|
||||
if (parentDialog != null) {
|
||||
parentDialog.setVisible(false);
|
||||
}
|
||||
new Thread(() -> {
|
||||
try {
|
||||
MultiUserCaseManager.getInstance().openCase(caseMetadataFilePath);
|
||||
} catch (CaseActionException | MultiUserCaseManager.MultiUserCaseManagerException ex) {
|
||||
if (null != ex.getCause() && !(ex.getCause() instanceof CaseActionCancelledException)) {
|
||||
LOGGER.log(Level.SEVERE, String.format("Error opening case with metadata file path %s", caseMetadataFilePath), ex); //NON-NLS
|
||||
MessageNotifyUtil.Message.error(ex.getCause().getLocalizedMessage());
|
||||
}
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
//GUI changes done back on the EDT
|
||||
StartupWindowProvider.getInstance().open();
|
||||
});
|
||||
} finally {
|
||||
SwingUtilities.invokeLater(() -> {
|
||||
//GUI changes done back on the EDT
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
|
||||
});
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -528,10 +538,7 @@ final class MultiUserCasesPanel extends javax.swing.JPanel {
|
||||
int modelRow = casesTable.convertRowIndexToModel(casesTable.getSelectedRow());
|
||||
String caseDirectory = (String) caseTableModel.getValueAt(modelRow, COLUMN_HEADERS.OUTPUTFOLDER.ordinal());
|
||||
Path caseMetadataFilePath = Paths.get(caseDirectory, (String) caseTableModel.getValueAt(modelRow, COLUMN_HEADERS.METADATA_FILE.ordinal()));
|
||||
|
||||
new Thread(() -> {
|
||||
openCase(caseMetadataFilePath);
|
||||
}).start();
|
||||
openCase(caseMetadataFilePath);
|
||||
}//GEN-LAST:event_bnOpenActionPerformed
|
||||
|
||||
/**
|
||||
|
||||
@@ -74,7 +74,7 @@ class AccountDetailsNode extends AbstractNode {
|
||||
@Override
|
||||
protected Node createNodeForKey(Content t) {
|
||||
if (t instanceof BlackboardArtifact) {
|
||||
return new RelationShipNode((BlackboardArtifact) t);
|
||||
return new RelationshipNode((BlackboardArtifact) t);
|
||||
} else {
|
||||
throw new UnsupportedOperationException("Cannot create a RelationshipNode for non BlackboardArtifact content.");
|
||||
}
|
||||
|
||||
@@ -31,13 +31,15 @@ class AccountDeviceInstanceKey {
|
||||
private final AccountDeviceInstance accountDeviceInstance;
|
||||
private final CommunicationsFilter filter;
|
||||
private final long messageCount;
|
||||
private final String dataSourceName;
|
||||
|
||||
|
||||
|
||||
AccountDeviceInstanceKey(AccountDeviceInstance accountDeviceInstance, CommunicationsFilter filter, long msgCount) {
|
||||
AccountDeviceInstanceKey(AccountDeviceInstance accountDeviceInstance, CommunicationsFilter filter, long msgCount, String dataSourceName) {
|
||||
this.accountDeviceInstance = accountDeviceInstance;
|
||||
this.filter = filter;
|
||||
this.messageCount = msgCount;
|
||||
this.dataSourceName = dataSourceName;
|
||||
}
|
||||
|
||||
AccountDeviceInstance getAccountDeviceInstance() {
|
||||
@@ -48,7 +50,11 @@ class AccountDeviceInstanceKey {
|
||||
return filter;
|
||||
}
|
||||
|
||||
long getMessageCount() {
|
||||
long getMessageCount() {
|
||||
return messageCount;
|
||||
}
|
||||
|
||||
String getDataSourceName() {
|
||||
return dataSourceName;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,9 +56,10 @@ class AccountsRootChildren extends ChildFactory<AccountDeviceInstanceKey> {
|
||||
protected boolean createKeys(List<AccountDeviceInstanceKey> list) {
|
||||
List<AccountDeviceInstanceKey> accountDeviceInstanceKeys = new ArrayList<>();
|
||||
try {
|
||||
for (AccountDeviceInstance adi : commsManager.getAccountDeviceInstancesWithRelationships(commsFilter)) {
|
||||
long communicationsCount = commsManager.getRelationshipSourcesCount(adi, commsFilter);
|
||||
accountDeviceInstanceKeys.add(new AccountDeviceInstanceKey(adi, commsFilter, communicationsCount));
|
||||
for (AccountDeviceInstance accountDeviceInstance : commsManager.getAccountDeviceInstancesWithRelationships(commsFilter)) {
|
||||
long communicationsCount = commsManager.getRelationshipSourcesCount(accountDeviceInstance, commsFilter);
|
||||
String dataSourceName = getDataSourceName(accountDeviceInstance);
|
||||
accountDeviceInstanceKeys.add(new AccountDeviceInstanceKey(accountDeviceInstance, commsFilter, communicationsCount, dataSourceName));
|
||||
};
|
||||
} catch (TskCoreException tskCoreException) {
|
||||
logger.log(Level.SEVERE, "Error getting filtered account device instances", tskCoreException);
|
||||
@@ -73,6 +74,20 @@ class AccountsRootChildren extends ChildFactory<AccountDeviceInstanceKey> {
|
||||
return new AccountDeviceInstanceNode(key, commsManager);
|
||||
}
|
||||
|
||||
private String getDataSourceName(AccountDeviceInstance accountDeviceInstance) {
|
||||
try {
|
||||
final SleuthkitCase sleuthkitCase = Case.getCurrentCase().getSleuthkitCase();
|
||||
for (DataSource dataSource : sleuthkitCase.getDataSources()) {
|
||||
if (dataSource.getDeviceId().equals(accountDeviceInstance.getDeviceId())) {
|
||||
return sleuthkitCase.getContentById(dataSource.getId()).getName();
|
||||
}
|
||||
}
|
||||
} catch (TskCoreException ex) {
|
||||
logger.log(Level.SEVERE, "Error getting datasource name, falling back on device ID.", ex);
|
||||
}
|
||||
return accountDeviceInstance.getDeviceId();
|
||||
}
|
||||
|
||||
/**
|
||||
* Node to represent an Account in the AccountsBrowser
|
||||
*/
|
||||
@@ -121,22 +136,8 @@ class AccountsRootChildren extends ChildFactory<AccountDeviceInstanceKey> {
|
||||
properties.put(new NodeProperty<>("count", Bundle.AccountNode_messageCount(), "count",
|
||||
accountDeviceInstanceKey.getMessageCount())); // NON-NLS
|
||||
properties.put(new NodeProperty<>("device", Bundle.AccountNode_device(), "device",
|
||||
getDataSourceName())); // NON-NLS
|
||||
accountDeviceInstanceKey.getDataSourceName())); // NON-NLS
|
||||
return s;
|
||||
}
|
||||
|
||||
private String getDataSourceName() {
|
||||
try {
|
||||
final SleuthkitCase sleuthkitCase = Case.getCurrentCase().getSleuthkitCase();
|
||||
for (DataSource dataSource : sleuthkitCase.getDataSources()) {
|
||||
if (dataSource.getDeviceId().equals(getAccountDeviceInstance().getDeviceId())) {
|
||||
return sleuthkitCase.getContentById(dataSource.getId()).getName();
|
||||
}
|
||||
}
|
||||
} catch (TskCoreException ex) {
|
||||
logger.log(Level.SEVERE, "Error getting datasource name, falling back on device ID.", ex);
|
||||
}
|
||||
return getAccountDeviceInstance().getDeviceId();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,11 +43,11 @@ import org.sleuthkit.datamodel.TskCoreException;
|
||||
/**
|
||||
* Node for a relationship, as represented by a BlackboardArtifact.
|
||||
*/
|
||||
public class RelationShipNode extends BlackboardArtifactNode {
|
||||
public class RelationshipNode extends BlackboardArtifactNode {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(RelationShipNode.class.getName());
|
||||
private static final Logger logger = Logger.getLogger(RelationshipNode.class.getName());
|
||||
|
||||
public RelationShipNode(BlackboardArtifact artifact) {
|
||||
public RelationshipNode(BlackboardArtifact artifact) {
|
||||
super(artifact);
|
||||
final String stripEnd = StringUtils.stripEnd(artifact.getDisplayName(), "s");
|
||||
String removeEndIgnoreCase = StringUtils.removeEndIgnoreCase(stripEnd, "message");
|
||||
@@ -59,7 +59,7 @@
|
||||
</Group>
|
||||
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="toText" max="32767" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="directionText" min="-2" pref="66" max="-2" attributes="0"/>
|
||||
@@ -151,6 +151,10 @@
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MessageContentViewer.toText.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="autoscrolls" type="boolean" value="true"/>
|
||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[27, 14]"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="ccLabel">
|
||||
@@ -165,6 +169,9 @@
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MessageContentViewer.ccText.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[27, 14]"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="subjectLabel">
|
||||
@@ -179,6 +186,9 @@
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/contentviewers/Bundle.properties" key="MessageContentViewer.subjectText.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[26, 14]"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="directionText">
|
||||
|
||||
@@ -161,14 +161,18 @@ public class MessageContentViewer extends javax.swing.JPanel implements DataCont
|
||||
org.openide.awt.Mnemonics.setLocalizedText(toLabel, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.toLabel.text")); // NOI18N
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(toText, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.toText.text")); // NOI18N
|
||||
toText.setAutoscrolls(true);
|
||||
toText.setMinimumSize(new java.awt.Dimension(27, 14));
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(ccLabel, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.ccLabel.text")); // NOI18N
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(ccText, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.ccText.text")); // NOI18N
|
||||
ccText.setMinimumSize(new java.awt.Dimension(27, 14));
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(subjectLabel, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.subjectLabel.text")); // NOI18N
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(subjectText, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.subjectText.text")); // NOI18N
|
||||
subjectText.setMinimumSize(new java.awt.Dimension(26, 14));
|
||||
|
||||
directionText.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
||||
org.openide.awt.Mnemonics.setLocalizedText(directionText, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.directionText.text")); // NOI18N
|
||||
@@ -215,16 +219,16 @@ public class MessageContentViewer extends javax.swing.JPanel implements DataCont
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(envelopePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(toLabel)
|
||||
.addComponent(toText)
|
||||
.addComponent(toText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(directionText))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(envelopePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(ccLabel)
|
||||
.addComponent(ccText))
|
||||
.addComponent(ccText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(envelopePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(subjectLabel)
|
||||
.addComponent(subjectText))
|
||||
.addComponent(subjectText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(5, 5, 5))
|
||||
);
|
||||
|
||||
@@ -494,6 +498,7 @@ public class MessageContentViewer extends javax.swing.JPanel implements DataCont
|
||||
htmlbodyTextPane.setText("");
|
||||
textbodyTextArea.setText("");
|
||||
drp.setNode(null);
|
||||
showImagesToggleButton.setEnabled(false);
|
||||
msgbodyTabbedPane.setEnabled(false);
|
||||
}
|
||||
|
||||
@@ -599,14 +604,18 @@ public class MessageContentViewer extends javax.swing.JPanel implements DataCont
|
||||
directionText.setEnabled(false);
|
||||
ccLabel.setEnabled(true);
|
||||
|
||||
showImagesToggleButton.setEnabled(true);
|
||||
showImagesToggleButton.setText("Show Images");
|
||||
showImagesToggleButton.setSelected(false);
|
||||
|
||||
try {
|
||||
this.fromText.setText(getAttributeValueSafe(artifact, TSK_EMAIL_FROM));
|
||||
this.fromText.setToolTipText(getAttributeValueSafe(artifact, TSK_EMAIL_FROM));
|
||||
this.toText.setText(getAttributeValueSafe(artifact, TSK_EMAIL_TO));
|
||||
this.toText.setToolTipText(getAttributeValueSafe(artifact, TSK_EMAIL_TO));
|
||||
this.directionText.setText("");
|
||||
this.ccText.setText(getAttributeValueSafe(artifact, TSK_EMAIL_CC));
|
||||
this.ccText.setToolTipText(getAttributeValueSafe(artifact, TSK_EMAIL_CC));
|
||||
this.subjectText.setText(getAttributeValueSafe(artifact, TSK_SUBJECT));
|
||||
this.datetimeText.setText(getAttributeValueSafe(artifact, TSK_DATETIME_RCVD));
|
||||
|
||||
|
||||
@@ -72,6 +72,7 @@ import org.sleuthkit.autopsy.report.ReportBranding;
|
||||
"AutopsyOptionsPanel.specifyLogoRB.text=Specify a logo",
|
||||
"AutopsyOptionsPanel.browseLogosButton.text=Browse",
|
||||
"AutopsyOptionsPanel.agencyLogoPathFieldValidationLabel.invalidPath.text=Path is not valid.",
|
||||
"AutopsyOptionsPanel.agencyLogoPathFieldValidationLabel.invalidImageSpecified.text=Invalid image file specified.",
|
||||
"AutopsyOptionsPanel.agencyLogoPathFieldValidationLabel.pathNotSet.text=Agency logo path must be set."
|
||||
})
|
||||
|
||||
@@ -416,7 +417,17 @@ final class AutopsyOptionsPanel extends javax.swing.JPanel {
|
||||
} else {
|
||||
File file = new File(agencyLogoPathField.getText());
|
||||
if (file.exists() && file.isFile()) {
|
||||
agencyLogoPathFieldValidationLabel.setText("");
|
||||
BufferedImage image;
|
||||
try { //ensure the image can be read
|
||||
image = ImageIO.read(file); //create it as an image first to support BMP files
|
||||
if (image == null) {
|
||||
throw new IOException("Unable to read file as a BufferedImage for file " + file.toString());
|
||||
}
|
||||
agencyLogoPathFieldValidationLabel.setText("");
|
||||
} catch (IOException | IndexOutOfBoundsException ignored) {
|
||||
agencyLogoPathFieldValidationLabel.setText(Bundle.AutopsyOptionsPanel_agencyLogoPathFieldValidationLabel_invalidImageSpecified_text());
|
||||
valid = false;
|
||||
}
|
||||
} else {
|
||||
agencyLogoPathFieldValidationLabel.setText(Bundle.AutopsyOptionsPanel_agencyLogoPathFieldValidationLabel_invalidPath_text());
|
||||
valid = false;
|
||||
|
||||
@@ -22,17 +22,17 @@
|
||||
<Group type="102" attributes="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="bnPause" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="bnPause" linkSize="3" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="bnRefresh" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="bnRefresh" linkSize="3" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="bnOptions" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="bnOptions" linkSize="3" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="bnOpenLogDir" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="bnOpenLogDir" linkSize="3" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="bnClusterMetrics" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="bnClusterMetrics" linkSize="3" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="bnExit" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="bnExit" linkSize="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="lbStatus" min="-2" max="-2" attributes="0"/>
|
||||
@@ -609,4 +609,4 @@
|
||||
</Events>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Form>
|
||||
</Form>
|
||||
|
||||
@@ -73,7 +73,7 @@ import org.sleuthkit.autopsy.ingest.IngestProgressSnapshotDialog;
|
||||
* one such panel per node.
|
||||
*/
|
||||
@Messages({
|
||||
"AutoIngestControlPanel.bnClusterMetrics.text=Cluster Metrics",
|
||||
"AutoIngestControlPanel.bnClusterMetrics.text=Auto Ingest Metrics",
|
||||
"AutoIngestControlPanel.bnPause.text=Pause",
|
||||
"AutoIngestControlPanel.bnPause.paused=Paused",
|
||||
"AutoIngestControlPanel.bnPause.running=Running",
|
||||
@@ -1492,6 +1492,8 @@ public final class AutoIngestControlPanel extends JPanel implements Observer {
|
||||
|
||||
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {bnCancelJob, bnCancelModule, bnDeleteCase, bnShowProgress});
|
||||
|
||||
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {bnClusterMetrics, bnExit, bnOpenLogDir, bnOptions, bnPause, bnRefresh});
|
||||
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
|
||||
@@ -34,13 +34,13 @@
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Group type="103" groupAlignment="1" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="refreshButton" min="-2" pref="100" max="-2" attributes="0"/>
|
||||
<Component id="refreshButton" linkSize="1" min="-2" pref="100" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="prioritizeJobButton" min="-2" pref="100" max="-2" attributes="0"/>
|
||||
<Component id="prioritizeJobButton" linkSize="1" min="-2" pref="100" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="prioritizeCaseButton" min="-2" pref="100" max="-2" attributes="0"/>
|
||||
<Component id="prioritizeCaseButton" linkSize="1" min="-2" pref="100" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="clusterMetricsButton" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="clusterMetricsButton" linkSize="1" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Component id="lbPending" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="lbCompleted" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
|
||||
@@ -789,6 +789,9 @@ final class AutoIngestDashboard extends JPanel implements Observer {
|
||||
.addGap(0, 0, Short.MAX_VALUE)))
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {clusterMetricsButton, prioritizeCaseButton, prioritizeJobButton, refreshButton});
|
||||
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
|
||||
@@ -44,7 +44,7 @@ final class AutoIngestMetricsDialog extends javax.swing.JDialog {
|
||||
* @param parent The parent container.
|
||||
*/
|
||||
@Messages({
|
||||
"AutoIngestMetricsDialog.title.text=Auto Ingest Cluster Metrics",
|
||||
"AutoIngestMetricsDialog.title.text=Auto Ingest Metrics",
|
||||
"AutoIngestMetricsDialog.initReportText=Select a date above and click the 'Generate Metrics Report' button to generate\na metrics report."
|
||||
})
|
||||
AutoIngestMetricsDialog(Container parent) throws AutoIngestMetricsDialogException {
|
||||
|
||||
@@ -227,7 +227,7 @@ AutoIngestDashboard.prioritizeJobButton.text=Prioritize &Job
|
||||
AutoIngestDashboard.prioritizeCaseButton.toolTipText=Move all images associated with a case to top of Pending queue.
|
||||
AutoIngestDashboard.prioritizeCaseButton.text=Prioritize &Case
|
||||
AutoIngestMetricsDialog.reportTextArea.text=
|
||||
AutoIngestDashboard.clusterMetricsButton.text=Cluster Metrics
|
||||
AutoIngestDashboard.clusterMetricsButton.text=Auto Ingest Metrics
|
||||
AutoIngestMetricsDialog.metricsButton.text=Generate Metrics Report
|
||||
AutoIngestMetricsDialog.closeButton.text=Close
|
||||
AutoIngestMetricsDialog.datePicker.toolTipText=Choose a date
|
||||
|
||||
Reference in New Issue
Block a user