mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-13 16:36:15 +00:00
Merge remote-tracking branch 'upstream/develop' into include_all_drawable_mimetypes
Conflicts: ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/DrawableDB.java
This commit is contained in:
parent
1138ed5f89
commit
bf68bea824
@ -147,3 +147,7 @@ AutopsyOptionsPanel.jLabelNumThreads.text=Number of threads to use for file inge
|
|||||||
FXVideoPanel.progress.bufferingCancelled=media buffering was canceled
|
FXVideoPanel.progress.bufferingCancelled=media buffering was canceled
|
||||||
FXVideoPanel.progress.bufferingInterrupted=media buffering was interrupted
|
FXVideoPanel.progress.bufferingInterrupted=media buffering was interrupted
|
||||||
FXVideoPanel.progress.errorWritingVideoToDisk=Error writing video to disk
|
FXVideoPanel.progress.errorWritingVideoToDisk=Error writing video to disk
|
||||||
|
DataContentViewerHex.goToOffsetLabel.text=Jump to Offset
|
||||||
|
DataContentViewerHex.goToOffsetTextField.text=
|
||||||
|
DataContentViewerHex.goToOffsetTextField.msgDlg=Invalid Offset: {0}
|
||||||
|
DataContentViewerHex.setDataView.invalidOffset.negativeOffsetValue=Cannot jump to the resultant offset
|
@ -88,9 +88,13 @@
|
|||||||
<Component id="goToPageLabel" min="-2" max="-2" attributes="0"/>
|
<Component id="goToPageLabel" min="-2" max="-2" attributes="0"/>
|
||||||
<EmptySpace max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="goToPageTextField" min="-2" pref="79" max="-2" attributes="0"/>
|
<Component id="goToPageTextField" min="-2" pref="79" max="-2" attributes="0"/>
|
||||||
<EmptySpace pref="205" max="32767" attributes="0"/>
|
<EmptySpace type="separate" max="-2" attributes="0"/>
|
||||||
|
<Component id="goToOffsetLabel" min="-2" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
|
<Component id="goToOffsetTextField" min="-2" pref="79" max="-2" attributes="0"/>
|
||||||
|
<EmptySpace max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
<Component id="jScrollPane1" alignment="0" pref="622" max="32767" attributes="0"/>
|
<Component id="jScrollPane1" alignment="0" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
<DimensionLayout dim="1">
|
<DimensionLayout dim="1">
|
||||||
@ -108,9 +112,11 @@
|
|||||||
<Component id="prevPageButton" alignment="0" min="-2" pref="23" max="-2" attributes="0"/>
|
<Component id="prevPageButton" alignment="0" min="-2" pref="23" max="-2" attributes="0"/>
|
||||||
<Component id="goToPageLabel" alignment="0" min="-2" max="-2" attributes="0"/>
|
<Component id="goToPageLabel" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
<Component id="goToPageTextField" alignment="0" min="-2" max="-2" attributes="0"/>
|
<Component id="goToPageTextField" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="goToOffsetLabel" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
|
<Component id="goToOffsetTextField" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
|
<EmptySpace max="-2" attributes="0"/>
|
||||||
<Component id="jScrollPane1" pref="388" max="32767" attributes="0"/>
|
<Component id="jScrollPane1" pref="382" max="32767" attributes="0"/>
|
||||||
</Group>
|
</Group>
|
||||||
</Group>
|
</Group>
|
||||||
</DimensionLayout>
|
</DimensionLayout>
|
||||||
@ -131,6 +137,9 @@
|
|||||||
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
|
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
|
||||||
<Font name="Courier New" size="11" style="0"/>
|
<Font name="Courier New" size="11" style="0"/>
|
||||||
</Property>
|
</Property>
|
||||||
|
<Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
|
||||||
|
<Color id="Default Cursor"/>
|
||||||
|
</Property>
|
||||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||||
<Dimension value="[700, 20]"/>
|
<Dimension value="[700, 20]"/>
|
||||||
</Property>
|
</Property>
|
||||||
@ -140,7 +149,7 @@
|
|||||||
</Properties>
|
</Properties>
|
||||||
<AuxValues>
|
<AuxValues>
|
||||||
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new JTextPane(){
 public boolean getScrollableTracksViewportWidth() {
 return (getSize().width < 400);
 }};"/>
|
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new JTextPane(){
 public boolean getScrollableTracksViewportWidth() {
 return (getSize().width < 400);
 }};"/>
|
||||||
<AuxValue name="JavaCodeGenerator_CreateCodePost" type="java.lang.String" value="this.outputViewPane.setBackground(new java.awt.Color(255, 255, 255)); // to make sure the background color is white"/>
|
<AuxValue name="JavaCodeGenerator_CreateCodePost" type="java.lang.String" value="this.outputViewPane.setBackground(new java.awt.Color(255, 255, 255)); // to make sure the background color is white
this.outputViewPane.requestFocusInWindow();
this.outputViewPane.setCursor(Cursor.getDefaultCursor());
"/>
|
||||||
</AuxValues>
|
</AuxValues>
|
||||||
</Component>
|
</Component>
|
||||||
</SubComponents>
|
</SubComponents>
|
||||||
@ -278,6 +287,23 @@
|
|||||||
</Property>
|
</Property>
|
||||||
</Properties>
|
</Properties>
|
||||||
</Component>
|
</Component>
|
||||||
|
<Component class="javax.swing.JLabel" name="goToOffsetLabel">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="DataContentViewerHex.goToOffsetLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Component>
|
||||||
|
<Component class="javax.swing.JTextField" name="goToOffsetTextField">
|
||||||
|
<Properties>
|
||||||
|
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||||
|
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="DataContentViewerHex.goToOffsetTextField.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
<Events>
|
||||||
|
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="goToOffsetTextFieldActionPerformed"/>
|
||||||
|
</Events>
|
||||||
|
</Component>
|
||||||
</SubComponents>
|
</SubComponents>
|
||||||
</Container>
|
</Container>
|
||||||
</SubComponents>
|
</SubComponents>
|
||||||
|
@ -28,6 +28,8 @@ import org.sleuthkit.autopsy.coreutils.Logger;
|
|||||||
import javax.swing.JMenuItem;
|
import javax.swing.JMenuItem;
|
||||||
import javax.swing.JOptionPane;
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.JTextPane;
|
import javax.swing.JTextPane;
|
||||||
|
import javax.swing.text.BadLocationException;
|
||||||
|
import javax.swing.text.Utilities;
|
||||||
import org.openide.nodes.Node;
|
import org.openide.nodes.Node;
|
||||||
import org.openide.util.lookup.ServiceProvider;
|
import org.openide.util.lookup.ServiceProvider;
|
||||||
import org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer;
|
import org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer;
|
||||||
@ -94,6 +96,8 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
return (getSize().width < 400);
|
return (getSize().width < 400);
|
||||||
}};
|
}};
|
||||||
this.outputViewPane.setBackground(new java.awt.Color(255, 255, 255)); // to make sure the background color is white
|
this.outputViewPane.setBackground(new java.awt.Color(255, 255, 255)); // to make sure the background color is white
|
||||||
|
this.outputViewPane.requestFocusInWindow();
|
||||||
|
this.outputViewPane.setCursor(Cursor.getDefaultCursor());
|
||||||
totalPageLabel = new javax.swing.JLabel();
|
totalPageLabel = new javax.swing.JLabel();
|
||||||
ofLabel = new javax.swing.JLabel();
|
ofLabel = new javax.swing.JLabel();
|
||||||
currentPageLabel = new javax.swing.JLabel();
|
currentPageLabel = new javax.swing.JLabel();
|
||||||
@ -103,6 +107,8 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
pageLabel2 = new javax.swing.JLabel();
|
pageLabel2 = new javax.swing.JLabel();
|
||||||
goToPageTextField = new javax.swing.JTextField();
|
goToPageTextField = new javax.swing.JTextField();
|
||||||
goToPageLabel = new javax.swing.JLabel();
|
goToPageLabel = new javax.swing.JLabel();
|
||||||
|
goToOffsetLabel = new javax.swing.JLabel();
|
||||||
|
goToOffsetTextField = new javax.swing.JTextField();
|
||||||
|
|
||||||
copyMenuItem.setText(org.openide.util.NbBundle.getMessage(DataContentViewerHex.class, "DataContentViewerHex.copyMenuItem.text")); // NOI18N
|
copyMenuItem.setText(org.openide.util.NbBundle.getMessage(DataContentViewerHex.class, "DataContentViewerHex.copyMenuItem.text")); // NOI18N
|
||||||
rightClickMenu.add(copyMenuItem);
|
rightClickMenu.add(copyMenuItem);
|
||||||
@ -113,7 +119,8 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
jScrollPane1.setBackground(new java.awt.Color(255, 255, 255));
|
jScrollPane1.setBackground(new java.awt.Color(255, 255, 255));
|
||||||
|
|
||||||
outputViewPane.setEditable(false);
|
outputViewPane.setEditable(false);
|
||||||
outputViewPane.setFont(new Font("Courier New", Font.PLAIN, 11)); // NOI18N NON-NLS
|
outputViewPane.setFont(new java.awt.Font("Courier New", 0, 11)); // NOI18N
|
||||||
|
outputViewPane.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
|
||||||
outputViewPane.setMinimumSize(new java.awt.Dimension(700, 20));
|
outputViewPane.setMinimumSize(new java.awt.Dimension(700, 20));
|
||||||
outputViewPane.setPreferredSize(new java.awt.Dimension(700, 400));
|
outputViewPane.setPreferredSize(new java.awt.Dimension(700, 400));
|
||||||
jScrollPane1.setViewportView(outputViewPane);
|
jScrollPane1.setViewportView(outputViewPane);
|
||||||
@ -132,28 +139,28 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
pageLabel.setMinimumSize(new java.awt.Dimension(33, 14));
|
pageLabel.setMinimumSize(new java.awt.Dimension(33, 14));
|
||||||
pageLabel.setPreferredSize(new java.awt.Dimension(33, 14));
|
pageLabel.setPreferredSize(new java.awt.Dimension(33, 14));
|
||||||
|
|
||||||
prevPageButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_back.png"))); // NOI18N NON-NLS
|
prevPageButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_back.png"))); // NOI18N
|
||||||
prevPageButton.setText(org.openide.util.NbBundle.getMessage(DataContentViewerHex.class, "DataContentViewerHex.prevPageButton.text")); // NOI18N
|
prevPageButton.setText(org.openide.util.NbBundle.getMessage(DataContentViewerHex.class, "DataContentViewerHex.prevPageButton.text")); // NOI18N
|
||||||
prevPageButton.setBorderPainted(false);
|
prevPageButton.setBorderPainted(false);
|
||||||
prevPageButton.setContentAreaFilled(false);
|
prevPageButton.setContentAreaFilled(false);
|
||||||
prevPageButton.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_back_disabled.png"))); // NOI18N NON-NLS
|
prevPageButton.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_back_disabled.png"))); // NOI18N
|
||||||
prevPageButton.setMargin(new java.awt.Insets(2, 0, 2, 0));
|
prevPageButton.setMargin(new java.awt.Insets(2, 0, 2, 0));
|
||||||
prevPageButton.setPreferredSize(new java.awt.Dimension(23, 23));
|
prevPageButton.setPreferredSize(new java.awt.Dimension(23, 23));
|
||||||
prevPageButton.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_back_hover.png"))); // NOI18N NON-NLS
|
prevPageButton.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_back_hover.png"))); // NOI18N
|
||||||
prevPageButton.addActionListener(new java.awt.event.ActionListener() {
|
prevPageButton.addActionListener(new java.awt.event.ActionListener() {
|
||||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
prevPageButtonActionPerformed(evt);
|
prevPageButtonActionPerformed(evt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
nextPageButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_forward.png"))); // NOI18N NON-NLS
|
nextPageButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_forward.png"))); // NOI18N
|
||||||
nextPageButton.setText(org.openide.util.NbBundle.getMessage(DataContentViewerHex.class, "DataContentViewerHex.nextPageButton.text")); // NOI18N
|
nextPageButton.setText(org.openide.util.NbBundle.getMessage(DataContentViewerHex.class, "DataContentViewerHex.nextPageButton.text")); // NOI18N
|
||||||
nextPageButton.setBorderPainted(false);
|
nextPageButton.setBorderPainted(false);
|
||||||
nextPageButton.setContentAreaFilled(false);
|
nextPageButton.setContentAreaFilled(false);
|
||||||
nextPageButton.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_forward_disabled.png"))); // NOI18N NON-NLS
|
nextPageButton.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_forward_disabled.png"))); // NOI18N
|
||||||
nextPageButton.setMargin(new java.awt.Insets(2, 0, 2, 0));
|
nextPageButton.setMargin(new java.awt.Insets(2, 0, 2, 0));
|
||||||
nextPageButton.setPreferredSize(new java.awt.Dimension(23, 23));
|
nextPageButton.setPreferredSize(new java.awt.Dimension(23, 23));
|
||||||
nextPageButton.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_forward_hover.png"))); // NOI18N NON-NLS
|
nextPageButton.setRolloverIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/btn_step_forward_hover.png"))); // NOI18N
|
||||||
nextPageButton.addActionListener(new java.awt.event.ActionListener() {
|
nextPageButton.addActionListener(new java.awt.event.ActionListener() {
|
||||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
nextPageButtonActionPerformed(evt);
|
nextPageButtonActionPerformed(evt);
|
||||||
@ -174,6 +181,15 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
|
|
||||||
goToPageLabel.setText(org.openide.util.NbBundle.getMessage(DataContentViewerHex.class, "DataContentViewerHex.goToPageLabel.text")); // NOI18N
|
goToPageLabel.setText(org.openide.util.NbBundle.getMessage(DataContentViewerHex.class, "DataContentViewerHex.goToPageLabel.text")); // NOI18N
|
||||||
|
|
||||||
|
goToOffsetLabel.setText(org.openide.util.NbBundle.getMessage(DataContentViewerHex.class, "DataContentViewerHex.goToOffsetLabel.text")); // NOI18N
|
||||||
|
|
||||||
|
goToOffsetTextField.setText(org.openide.util.NbBundle.getMessage(DataContentViewerHex.class, "DataContentViewerHex.goToOffsetTextField.text")); // NOI18N
|
||||||
|
goToOffsetTextField.addActionListener(new java.awt.event.ActionListener() {
|
||||||
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||||
|
goToOffsetTextFieldActionPerformed(evt);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
javax.swing.GroupLayout hexViewerPanelLayout = new javax.swing.GroupLayout(hexViewerPanel);
|
javax.swing.GroupLayout hexViewerPanelLayout = new javax.swing.GroupLayout(hexViewerPanel);
|
||||||
hexViewerPanel.setLayout(hexViewerPanelLayout);
|
hexViewerPanel.setLayout(hexViewerPanelLayout);
|
||||||
hexViewerPanelLayout.setHorizontalGroup(
|
hexViewerPanelLayout.setHorizontalGroup(
|
||||||
@ -197,8 +213,12 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
.addComponent(goToPageLabel)
|
.addComponent(goToPageLabel)
|
||||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
.addComponent(goToPageTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addComponent(goToPageTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addContainerGap(205, Short.MAX_VALUE))
|
.addGap(18, 18, 18)
|
||||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 622, Short.MAX_VALUE)
|
.addComponent(goToOffsetLabel)
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(goToOffsetTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
|
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||||
|
.addComponent(jScrollPane1)
|
||||||
);
|
);
|
||||||
hexViewerPanelLayout.setVerticalGroup(
|
hexViewerPanelLayout.setVerticalGroup(
|
||||||
hexViewerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
hexViewerPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||||
@ -213,9 +233,11 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
.addComponent(nextPageButton, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addComponent(nextPageButton, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addComponent(prevPageButton, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
|
.addComponent(prevPageButton, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addComponent(goToPageLabel)
|
.addComponent(goToPageLabel)
|
||||||
.addComponent(goToPageTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
.addComponent(goToPageTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||||
.addGap(0, 0, 0)
|
.addComponent(goToOffsetLabel)
|
||||||
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 388, Short.MAX_VALUE))
|
.addComponent(goToOffsetTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||||
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||||
|
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 382, Short.MAX_VALUE))
|
||||||
);
|
);
|
||||||
|
|
||||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||||
@ -241,11 +263,13 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
}// </editor-fold>//GEN-END:initComponents
|
}// </editor-fold>//GEN-END:initComponents
|
||||||
|
|
||||||
private void prevPageButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_prevPageButtonActionPerformed
|
private void prevPageButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_prevPageButtonActionPerformed
|
||||||
setDataView(currentPage - 1);
|
setDataViewByPageNumber(currentPage - 1);
|
||||||
|
goToPageTextField.setText(Integer.toString(currentPage));
|
||||||
}//GEN-LAST:event_prevPageButtonActionPerformed
|
}//GEN-LAST:event_prevPageButtonActionPerformed
|
||||||
|
|
||||||
private void nextPageButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextPageButtonActionPerformed
|
private void nextPageButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_nextPageButtonActionPerformed
|
||||||
setDataView(currentPage + 1);
|
setDataViewByPageNumber(currentPage + 1);
|
||||||
|
goToPageTextField.setText(Integer.toString(currentPage));
|
||||||
}//GEN-LAST:event_nextPageButtonActionPerformed
|
}//GEN-LAST:event_nextPageButtonActionPerformed
|
||||||
|
|
||||||
private void goToPageTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_goToPageTextFieldActionPerformed
|
private void goToPageTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_goToPageTextFieldActionPerformed
|
||||||
@ -267,11 +291,59 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
JOptionPane.WARNING_MESSAGE);
|
JOptionPane.WARNING_MESSAGE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setDataView(pageNumber);
|
setDataViewByPageNumber(pageNumber);
|
||||||
}//GEN-LAST:event_goToPageTextFieldActionPerformed
|
}//GEN-LAST:event_goToPageTextFieldActionPerformed
|
||||||
|
|
||||||
|
/***
|
||||||
|
* Calculates the offset relative to the current caret position.
|
||||||
|
* @param userInput the user provided signed offset value.
|
||||||
|
* @return returns the resultant offset value relative to the current caret
|
||||||
|
* position. -1L is returned if the resultant offset cannot be calculated.
|
||||||
|
*/
|
||||||
|
private long getOffsetRelativeToCaretPosition(Long userInput) {
|
||||||
|
String userSelectedLine;
|
||||||
|
try {
|
||||||
|
// get the selected line. Extract the current hex offset location.
|
||||||
|
userSelectedLine = outputViewPane.getText().subSequence(
|
||||||
|
Utilities.getRowStart(outputViewPane, outputViewPane.getCaretPosition()),
|
||||||
|
Utilities.getRowEnd(outputViewPane, outputViewPane.getCaretPosition()))
|
||||||
|
.toString();
|
||||||
|
// NOTE: This needs to change if the outputFormat of outputViewPane changes.
|
||||||
|
String hexForUserSelectedLine = userSelectedLine.substring(0, userSelectedLine.indexOf(":"));
|
||||||
|
|
||||||
|
return Long.decode(hexForUserSelectedLine) + userInput;
|
||||||
|
} catch (BadLocationException | StringIndexOutOfBoundsException | NumberFormatException ex) {
|
||||||
|
// thrown in case the caret location is out of the range of the outputViewPane.
|
||||||
|
return -1L;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void goToOffsetTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_goToOffsetTextFieldActionPerformed
|
||||||
|
long offset;
|
||||||
|
try {
|
||||||
|
if (goToOffsetTextField.getText().startsWith("+") || goToOffsetTextField.getText().startsWith("-")) {
|
||||||
|
offset = getOffsetRelativeToCaretPosition(Long.decode(goToOffsetTextField.getText()));
|
||||||
|
} else {
|
||||||
|
offset = Long.decode(goToOffsetTextField.getText());
|
||||||
|
}
|
||||||
|
} catch (NumberFormatException ex) {
|
||||||
|
// notify the user and return
|
||||||
|
JOptionPane.showMessageDialog(this, NbBundle.getMessage(this.getClass(), "DataContentViewerHex.goToOffsetTextField.msgDlg", goToOffsetTextField.getText()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (offset >= 0) {
|
||||||
|
setDataViewByOffset(offset);
|
||||||
|
} else {
|
||||||
|
outputViewPane.setText(NbBundle.getMessage(DataContentViewerHex.class, "DataContentViewerHex.setDataView.invalidOffset.negativeOffsetValue"));
|
||||||
|
}
|
||||||
|
}//GEN-LAST:event_goToOffsetTextFieldActionPerformed
|
||||||
|
|
||||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||||
private javax.swing.JMenuItem copyMenuItem;
|
private javax.swing.JMenuItem copyMenuItem;
|
||||||
private javax.swing.JLabel currentPageLabel;
|
private javax.swing.JLabel currentPageLabel;
|
||||||
|
private javax.swing.JLabel goToOffsetLabel;
|
||||||
|
private javax.swing.JTextField goToOffsetTextField;
|
||||||
private javax.swing.JLabel goToPageLabel;
|
private javax.swing.JLabel goToPageLabel;
|
||||||
private javax.swing.JTextField goToPageTextField;
|
private javax.swing.JTextField goToPageTextField;
|
||||||
private javax.swing.JPanel hexViewerPanel;
|
private javax.swing.JPanel hexViewerPanel;
|
||||||
@ -289,22 +361,37 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the DataView (The tabbed panel)
|
* Sets the DataView (The tabbed panel) by page number
|
||||||
*
|
*
|
||||||
* @param page Page to display (1-based counting)
|
* @param page Page to display (1-based counting)
|
||||||
*/
|
*/
|
||||||
private void setDataView(int page) {
|
private void setDataViewByPageNumber(int page) {
|
||||||
if (this.dataSource == null) {
|
if (this.dataSource == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (page == 0) {
|
if (page == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
currentPage = page;
|
currentPage = page;
|
||||||
long offset = (currentPage - 1) * pageLength;
|
long offset = (currentPage - 1) * pageLength;
|
||||||
|
setDataView(offset);
|
||||||
|
goToOffsetTextField.setText(Long.toString(offset));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Sets the DataView (The tabbed panel) by offset
|
||||||
|
*
|
||||||
|
* @param page Page to display (1-based counting)
|
||||||
|
*/
|
||||||
|
private void setDataViewByOffset(long offset) {
|
||||||
|
if (this.dataSource == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
currentPage = (int) (offset / pageLength) + 1;
|
||||||
|
setDataView(offset);
|
||||||
|
goToPageTextField.setText(Integer.toString(currentPage));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setDataView(long offset) {
|
||||||
// change the cursor to "waiting cursor" for this operation
|
// change the cursor to "waiting cursor" for this operation
|
||||||
this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
||||||
|
|
||||||
@ -327,19 +414,16 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
offset + pageLength);
|
offset + pageLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// disable or enable the next button
|
// disable or enable the next button
|
||||||
if ((errorText == null) && (currentPage < totalPages)) {
|
if ((errorText == null) && (currentPage < totalPages)) {
|
||||||
nextPageButton.setEnabled(true);
|
nextPageButton.setEnabled(true);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
nextPageButton.setEnabled(false);
|
nextPageButton.setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((errorText == null) && (currentPage > 1)) {
|
if ((errorText == null) && (currentPage > 1)) {
|
||||||
prevPageButton.setEnabled(true);
|
prevPageButton.setEnabled(true);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
prevPageButton.setEnabled(false);
|
prevPageButton.setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -350,8 +434,7 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
if (errorText == null) {
|
if (errorText == null) {
|
||||||
int showLength = bytesRead < pageLength ? bytesRead : (int) pageLength;
|
int showLength = bytesRead < pageLength ? bytesRead : (int) pageLength;
|
||||||
outputViewPane.setText(DataConversion.byteArrayToHex(data, showLength, offset));
|
outputViewPane.setText(DataConversion.byteArrayToHex(data, showLength, offset));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
outputViewPane.setText(errorText);
|
outputViewPane.setText(errorText);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -379,7 +462,7 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
}
|
}
|
||||||
totalPageLabel.setText(Integer.toString(totalPages));
|
totalPageLabel.setText(Integer.toString(totalPages));
|
||||||
|
|
||||||
this.setDataView(1);
|
this.setDataViewByPageNumber(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -423,6 +506,8 @@ public class DataContentViewerHex extends javax.swing.JPanel implements DataCont
|
|||||||
pageLabel2.setVisible(isVisible);
|
pageLabel2.setVisible(isVisible);
|
||||||
goToPageTextField.setVisible(isVisible);
|
goToPageTextField.setVisible(isVisible);
|
||||||
goToPageLabel.setVisible(isVisible);
|
goToPageLabel.setVisible(isVisible);
|
||||||
|
goToOffsetTextField.setVisible(isVisible);
|
||||||
|
goToOffsetLabel.setVisible(isVisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -120,7 +120,7 @@ public final class JythonModuleLoader {
|
|||||||
interpreter.exec("import sys"); //NON-NLS
|
interpreter.exec("import sys"); //NON-NLS
|
||||||
String path = Matcher.quoteReplacement(script.getParent());
|
String path = Matcher.quoteReplacement(script.getParent());
|
||||||
interpreter.exec("sys.path.append('" + path + "')"); //NON-NLS
|
interpreter.exec("sys.path.append('" + path + "')"); //NON-NLS
|
||||||
String moduleName = script.getName().replaceAll(".py", ""); //NON-NLS
|
String moduleName = script.getName().replaceAll("\\.py$", ""); //NON-NLS
|
||||||
|
|
||||||
// reload the module so that the changes made to it can be loaded.
|
// reload the module so that the changes made to it can be loaded.
|
||||||
interpreter.exec("import " + moduleName); //NON-NLS
|
interpreter.exec("import " + moduleName); //NON-NLS
|
||||||
|
@ -34,6 +34,7 @@ import java.util.HashMap;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.locks.Lock;
|
import java.util.concurrent.locks.Lock;
|
||||||
@ -1196,10 +1197,23 @@ public final class DrawableDB {
|
|||||||
/**
|
/**
|
||||||
* For performance reasons, keep the file type in memory
|
* For performance reasons, keep the file type in memory
|
||||||
*/
|
*/
|
||||||
private final Map<AbstractFile, Boolean> videoFileMap = new ConcurrentHashMap<>();
|
private final Map<Long, Boolean> videoFileMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* is this File a video file?
|
||||||
|
*
|
||||||
|
* @param f check if this file is a video. will return false for null file.
|
||||||
|
*
|
||||||
|
* @return returns true if this file is a video as determined by {@link ImageGalleryModule#isVideoFile(org.sleuthkit.datamodel.AbstractFile)
|
||||||
|
* } but caches the result.
|
||||||
|
* returns false if passed a null AbstractFile
|
||||||
|
*/
|
||||||
public boolean isVideoFile(AbstractFile f) {
|
public boolean isVideoFile(AbstractFile f) {
|
||||||
return videoFileMap.computeIfAbsent(f, FileTypeUtils::isVideoFile);
|
if (Objects.isNull(f)) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return videoFileMap.computeIfAbsent(f.getId(), (id) -> ImageGalleryModule.isVideoFile(f));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -284,7 +284,7 @@ public abstract class DrawableTileBase extends DrawableUIBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void setFileHelper(final Long newFileID) {
|
synchronized protected void setFileHelper(final Long newFileID) {
|
||||||
setFileIDOpt(Optional.ofNullable(newFileID));
|
setFileIDOpt(Optional.ofNullable(newFileID));
|
||||||
disposeContent();
|
disposeContent();
|
||||||
|
|
||||||
@ -351,7 +351,6 @@ public abstract class DrawableTileBase extends DrawableUIBase {
|
|||||||
@Subscribe
|
@Subscribe
|
||||||
@Override
|
@Override
|
||||||
public void handleTagAdded(ContentTagAddedEvent evt) {
|
public void handleTagAdded(ContentTagAddedEvent evt) {
|
||||||
|
|
||||||
handleTagEvent(evt, () -> {
|
handleTagEvent(evt, () -> {
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
followUpImageView.setImage(followUpIcon);
|
followUpImageView.setImage(followUpIcon);
|
||||||
|
@ -35,9 +35,9 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView
|
|||||||
|
|
||||||
private final ImageGalleryController controller;
|
private final ImageGalleryController controller;
|
||||||
|
|
||||||
volatile private Optional<DrawableFile<?>> fileOpt = Optional.empty();
|
private Optional<DrawableFile<?>> fileOpt = Optional.empty();
|
||||||
|
|
||||||
volatile private Optional<Long> fileIDOpt = Optional.empty();
|
private Optional<Long> fileIDOpt = Optional.empty();
|
||||||
|
|
||||||
public DrawableUIBase(ImageGalleryController controller) {
|
public DrawableUIBase(ImageGalleryController controller) {
|
||||||
this.controller = controller;
|
this.controller = controller;
|
||||||
@ -53,16 +53,16 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView
|
|||||||
return fileIDOpt;
|
return fileIDOpt;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setFileIDOpt(Optional<Long> fileIDOpt) {
|
synchronized void setFileIDOpt(Optional<Long> fileIDOpt) {
|
||||||
this.fileIDOpt = fileIDOpt;
|
this.fileIDOpt = fileIDOpt;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setFileOpt(Optional<DrawableFile<?>> fileOpt) {
|
synchronized void setFileOpt(Optional<DrawableFile<?>> fileOpt) {
|
||||||
this.fileOpt = fileOpt;
|
this.fileOpt = fileOpt;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Optional<DrawableFile<?>> getFile() {
|
synchronized public Optional<DrawableFile<?>> getFile() {
|
||||||
if (fileIDOpt.isPresent()) {
|
if (fileIDOpt.isPresent()) {
|
||||||
if (fileOpt.isPresent() && fileOpt.get().getId() == fileIDOpt.get()) {
|
if (fileOpt.isPresent() && fileOpt.get().getId() == fileIDOpt.get()) {
|
||||||
return fileOpt;
|
return fileOpt;
|
||||||
@ -83,7 +83,7 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView
|
|||||||
protected abstract void setFileHelper(Long newFileID);
|
protected abstract void setFileHelper(Long newFileID);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setFile(Long newFileID) {
|
synchronized public void setFile(Long newFileID) {
|
||||||
if (getFileID().isPresent()) {
|
if (getFileID().isPresent()) {
|
||||||
if (Objects.equals(newFileID, getFileID().get()) == false) {
|
if (Objects.equals(newFileID, getFileID().get()) == false) {
|
||||||
setFileHelper(newFileID);
|
setFileHelper(newFileID);
|
||||||
@ -92,6 +92,4 @@ abstract public class DrawableUIBase extends AnchorPane implements DrawableView
|
|||||||
setFileHelper(newFileID);
|
setFileHelper(newFileID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -150,7 +150,7 @@ public class MetaDataPane extends DrawableUIBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected synchronized void setFileHelper(Long newFileID) {
|
synchronized protected void setFileHelper(Long newFileID) {
|
||||||
setFileIDOpt(Optional.ofNullable(newFileID));
|
setFileIDOpt(Optional.ofNullable(newFileID));
|
||||||
if (newFileID == null) {
|
if (newFileID == null) {
|
||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
|
@ -290,7 +290,7 @@ public class SlideShowView extends DrawableTileBase {
|
|||||||
* 1 => right / forward
|
* 1 => right / forward
|
||||||
*/
|
*/
|
||||||
@ThreadConfined(type = ThreadType.JFX)
|
@ThreadConfined(type = ThreadType.JFX)
|
||||||
private void cycleSlideShowImage(int direction) {
|
synchronized private void cycleSlideShowImage(int direction) {
|
||||||
stopVideo();
|
stopVideo();
|
||||||
final int groupSize = getGroupPane().getGrouping().fileIds().size();
|
final int groupSize = getGroupPane().getGrouping().fileIds().size();
|
||||||
final Integer nextIndex = getFileID().map(fileID -> {
|
final Integer nextIndex = getFileID().map(fileID -> {
|
||||||
@ -363,7 +363,6 @@ public class SlideShowView extends DrawableTileBase {
|
|||||||
new CategorizeAction(getController()).addTag(getController().getTagsManager().getTagName(cat), "");
|
new CategorizeAction(getController()).addTag(getController().getTagsManager().getTagName(cat), "");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -107,7 +107,6 @@ class GroupTreeCell extends TreeCell<TreeNode> {
|
|||||||
setStyle("");
|
setStyle("");
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (isNull(treeNode.getGroup())) {
|
if (isNull(treeNode.getGroup())) {
|
||||||
final String groupName = getGroupName();
|
final String groupName = getGroupName();
|
||||||
//"dummy" group in file system tree <=> a folder with no drawables
|
//"dummy" group in file system tree <=> a folder with no drawables
|
||||||
@ -141,7 +140,7 @@ class GroupTreeCell extends TreeCell<TreeNode> {
|
|||||||
|
|
||||||
private String getGroupName() {
|
private String getGroupName() {
|
||||||
return Optional.ofNullable(getItem())
|
return Optional.ofNullable(getItem())
|
||||||
.map((TreeNode t) -> StringUtils.defaultIfBlank(t.getPath(), DrawableGroup.getBlankGroupName()))
|
.map(treeNode -> StringUtils.defaultIfBlank(treeNode.getPath(), DrawableGroup.getBlankGroupName()))
|
||||||
.orElse("");
|
.orElse("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +28,6 @@ import javafx.beans.property.SimpleObjectProperty;
|
|||||||
import javafx.beans.value.ObservableValue;
|
import javafx.beans.value.ObservableValue;
|
||||||
import javafx.collections.FXCollections;
|
import javafx.collections.FXCollections;
|
||||||
import javafx.collections.ListChangeListener;
|
import javafx.collections.ListChangeListener;
|
||||||
import javafx.collections.ObservableList;
|
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.ComboBox;
|
import javafx.scene.control.ComboBox;
|
||||||
import javafx.scene.control.ListView;
|
import javafx.scene.control.ListView;
|
||||||
@ -151,13 +150,15 @@ public class NavPanel extends TabPane {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
initHashTree();
|
|
||||||
initNavTree();
|
|
||||||
|
|
||||||
controller.getGroupManager().getAnalyzedGroups().addListener((ListChangeListener.Change<? extends DrawableGroup> change) -> {
|
controller.getGroupManager().getAnalyzedGroups().addListener((ListChangeListener.Change<? extends DrawableGroup> change) -> {
|
||||||
TreeItem<TreeNode> selectedItem = activeTreeProperty.get().getSelectionModel().getSelectedItem();
|
TreeItem<TreeNode> selectedItem = activeTreeProperty.get().getSelectionModel().getSelectedItem();
|
||||||
boolean wasPermuted = false;
|
boolean wasPermuted = false;
|
||||||
while (change.next()) {
|
while (change.next()) {
|
||||||
|
if (change.wasPermutated()) {
|
||||||
|
// Handle this afterward
|
||||||
|
wasPermuted = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
for (DrawableGroup g : change.getAddedSubList()) {
|
for (DrawableGroup g : change.getAddedSubList()) {
|
||||||
insertIntoNavTree(g);
|
insertIntoNavTree(g);
|
||||||
if (g.getHashSetHitsCount() > 0) {
|
if (g.getHashSetHitsCount() > 0) {
|
||||||
@ -168,11 +169,6 @@ public class NavPanel extends TabPane {
|
|||||||
removeFromNavTree(g);
|
removeFromNavTree(g);
|
||||||
removeFromHashTree(g);
|
removeFromHashTree(g);
|
||||||
}
|
}
|
||||||
if (change.wasPermutated()) {
|
|
||||||
// Handle this afterward
|
|
||||||
wasPermuted = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wasPermuted) {
|
if (wasPermuted) {
|
||||||
@ -182,16 +178,10 @@ public class NavPanel extends TabPane {
|
|||||||
Platform.runLater(() -> {
|
Platform.runLater(() -> {
|
||||||
setFocusedGroup(selectedItem.getValue().getGroup());
|
setFocusedGroup(selectedItem.getValue().getGroup());
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
for (DrawableGroup g : controller.getGroupManager().getAnalyzedGroups()) {
|
rebuildTrees();
|
||||||
insertIntoNavTree(g);
|
|
||||||
if (g.getHashSetHitsCount() > 0) {
|
|
||||||
insertIntoHashTree(g);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
controller.viewState().addListener((ObservableValue<? extends GroupViewState> observable, GroupViewState oldValue, GroupViewState newValue) -> {
|
controller.viewState().addListener((ObservableValue<? extends GroupViewState> observable, GroupViewState oldValue, GroupViewState newValue) -> {
|
||||||
if (newValue != null && newValue.getGroup() != null) {
|
if (newValue != null && newValue.getGroup() != null) {
|
||||||
@ -204,9 +194,7 @@ public class NavPanel extends TabPane {
|
|||||||
navTreeRoot = new GroupTreeItem("", null, sortByBox.getSelectionModel().selectedItemProperty().get());
|
navTreeRoot = new GroupTreeItem("", null, sortByBox.getSelectionModel().selectedItemProperty().get());
|
||||||
hashTreeRoot = new GroupTreeItem("", null, sortByBox.getSelectionModel().selectedItemProperty().get());
|
hashTreeRoot = new GroupTreeItem("", null, sortByBox.getSelectionModel().selectedItemProperty().get());
|
||||||
|
|
||||||
ObservableList<DrawableGroup> groups = controller.getGroupManager().getAnalyzedGroups();
|
for (DrawableGroup g : controller.getGroupManager().getAnalyzedGroups()) {
|
||||||
|
|
||||||
for (DrawableGroup g : groups) {
|
|
||||||
insertIntoNavTree(g);
|
insertIntoNavTree(g);
|
||||||
if (g.getHashSetHitsCount() > 0) {
|
if (g.getHashSetHitsCount() > 0) {
|
||||||
insertIntoHashTree(g);
|
insertIntoHashTree(g);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user