Skip to content

Commit

Permalink
#52, #286: add clear button for report window and toggle select for c…
Browse files Browse the repository at this point in the history
…sv export window
  • Loading branch information
FelipeFcosta committed Feb 8, 2023
1 parent 9ba6acd commit db9c48e
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,11 @@ ColumnsManager.Video=Video
ColumnsManager.PeerToPeer=PeerToPeer
ColumnsManager.UFED=UFED
ColumnsManager.AutoManageCols=Manage columns automatically (slower)
ColumnsManager.CheckVisible=Select only visible properties
ColumnsManager.SelectVisible=Check only visible
ColumnsManager.ClearButton=Clear All
ColumnsManager.LoadingCols=Loading used columns...
ColumnsManager.Filter=[Type to filter]
ColumnsManager.ToggleSelectAll=Select / Unselect All
CompositeViewer.Title=Viewer
CopyProperties.Copying=Copying
CopyProperties.CSVDateFormat=MM/dd/yyyy HH:mm:ss z
Expand Down
8 changes: 8 additions & 0 deletions iped-app/src/main/java/iped/app/ui/ColumnsManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -417,4 +417,12 @@ protected void enableOnlySelectedProperties(List<String> props) {
}
}

protected void enableAllProperties() {
enableOnlySelectedProperties(new ArrayList<String>(allCheckBoxesState.keySet()));
}

protected void disableAllProperties() {
enableOnlySelectedProperties(new ArrayList<String>());
}

}
3 changes: 2 additions & 1 deletion iped-app/src/main/java/iped/app/ui/ColumnsManagerUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
public class ColumnsManagerUI implements ActionListener {
protected JCheckBox autoManage = new JCheckBox(Messages.getString("ColumnsManager.AutoManageCols")); //$NON-NLS-1$
protected JComboBox<Object> combo;
protected JScrollPane scrollList;
protected JLabel showColsLabel = new JLabel(Messages.getString("ColumnsManager.ShowCols")); //$NON-NLS-1$
protected HintTextField textFieldNameFilter;
protected JDialog dialog = new JDialog(App.get());
Expand Down Expand Up @@ -141,7 +142,7 @@ public void changedUpdate(DocumentEvent e) {
panel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
panel.add(topPanel, BorderLayout.NORTH);

JScrollPane scrollList = new JScrollPane(listPanel);
scrollList = new JScrollPane(listPanel);
scrollList.getVerticalScrollBar().setUnitIncrement(10);
panel.add(scrollList, BorderLayout.CENTER);

Expand Down
34 changes: 34 additions & 0 deletions iped-app/src/main/java/iped/app/ui/ColumnsSelectReportUI.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
package iped.app.ui;

import java.util.Arrays;
import java.awt.BorderLayout;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JPanel;

import iped.engine.task.index.IndexItem;

public class ColumnsSelectReportUI extends ColumnsSelectUI {
Expand All @@ -26,6 +32,34 @@ protected ColumnsSelectReportUI() {
super();
saveFileName = ColumnsManager.SELECTED_REPORT_PROPERTIES_FILENAME;

dialog.getContentPane().remove(panel);

Box topPanel = Box.createVerticalBox();
topPanel.add(showColsLabel);
topPanel.add(combo);
topPanel.add(textFieldNameFilter);
selectVisibleButton.addActionListener(this);
combo.addActionListener(this);

panel = new JPanel(new BorderLayout());
panel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
panel.add(topPanel, BorderLayout.NORTH);
panel.add(scrollList, BorderLayout.CENTER);

okButton.addActionListener(this);
clearButton.addActionListener(this);
JPanel leftBottomPanel = new JPanel(new BorderLayout());
leftBottomPanel.add(selectVisibleButton, BorderLayout.WEST);
leftBottomPanel.add(clearButton, BorderLayout.EAST);
JPanel bottomPanel = new JPanel(new BorderLayout());
bottomPanel.add(leftBottomPanel, BorderLayout.WEST);
bottomPanel.add(okButton, BorderLayout.EAST);

panel.add(bottomPanel, BorderLayout.SOUTH);

dialog.getContentPane().add(panel);
dialog.setLocationRelativeTo(App.get());

loadedSelectedProperties = ColumnsManager.loadSelectedFields(saveFileName);
if (loadedSelectedProperties != null) {
columnsManager.enableOnlySelectedProperties(loadedSelectedProperties);
Expand Down
64 changes: 31 additions & 33 deletions iped-app/src/main/java/iped/app/ui/ColumnsSelectUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import iped.localization.LocalizedProperties;
import iped.utils.StringUtil;
Expand All @@ -25,10 +23,11 @@ public class ColumnsSelectUI extends ColumnsManagerUI {
private ColumnsManagerUI columnsManagerUI;
private static ColumnsSelectUI instance;

protected JCheckBox selectVisibleCheckBox = new JCheckBox(Messages.getString("ColumnsManager.CheckVisible"));
private boolean selectOnlyVisible;
protected JCheckBox toggleSelectUnselectAllCheckBox = new JCheckBox(Messages.getString("ColumnsManager.ToggleSelectAll"));
protected JButton selectVisibleButton = new JButton(Messages.getString("ColumnsManager.SelectVisible"));
protected JButton clearButton = new JButton(Messages.getString("ColumnsManager.ClearButton"));

private JButton okButton = new JButton("OK");
protected JButton okButton = new JButton("OK");

ArrayList<String> loadedSelectedProperties;

Expand All @@ -52,14 +51,6 @@ public static boolean getOkButtonClicked() {
return okButtonClicked;
}

public boolean isSelectOnlyVisible() {
return selectOnlyVisible;
}

public void setSelectOnlyVisible(boolean selectOnlyVisible) {
this.selectOnlyVisible = selectOnlyVisible;
}

protected ColumnsSelectUI() {
super();
saveFileName = ColumnsManager.SELECTED_PROPERTIES_FILENAME;
Expand All @@ -78,33 +69,28 @@ public void windowClosing(WindowEvent e) {
dialog.getContentPane().remove(panel);
autoManage.removeActionListener(columnsManagerUI);

combo = new JComboBox<Object>(ColumnsManager.groupNames);
combo.setAlignmentX(0);

selectVisibleCheckBox.setSelected(isSelectOnlyVisible());
selectVisibleCheckBox.setAlignmentX(0);
selectVisibleCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
selectVisibleCheckBox.addActionListener(this);
toggleSelectUnselectAllCheckBox.setAlignmentX(0);
toggleSelectUnselectAllCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
toggleSelectUnselectAllCheckBox.addActionListener(this);

Box topPanel = Box.createVerticalBox();
topPanel.add(selectVisibleCheckBox);
topPanel.add(toggleSelectUnselectAllCheckBox);
topPanel.add(showColsLabel);
topPanel.add(combo);
topPanel.add(textFieldNameFilter);
selectVisibleButton.addActionListener(this);
okButton.addActionListener(this);
combo.addActionListener(this);

panel = new JPanel(new BorderLayout());
panel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
panel.add(topPanel, BorderLayout.NORTH);

JScrollPane scrollList = new JScrollPane(listPanel);
scrollList.getVerticalScrollBar().setUnitIncrement(10);
panel.add(scrollList, BorderLayout.CENTER);

JPanel bPanel = new JPanel(new BorderLayout());
bPanel.add(okButton, BorderLayout.EAST);
panel.add(bPanel, BorderLayout.SOUTH);
JPanel bottomPanel = new JPanel(new BorderLayout());
bottomPanel.add(okButton, BorderLayout.EAST);
bottomPanel.add(selectVisibleButton, BorderLayout.WEST);
panel.add(bottomPanel, BorderLayout.SOUTH);

dialog.getContentPane().add(panel);
dialog.setLocationRelativeTo(App.get());
Expand All @@ -120,23 +106,36 @@ public void windowClosing(WindowEvent e) {

@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(selectVisibleCheckBox)) {
setSelectOnlyVisible(selectVisibleCheckBox.isSelected());
if (e.getSource().equals(selectVisibleButton)) {
columnsManager.enableOnlySelectedProperties(columnsManager.colState.visibleFields);
updatePanelList();
} else if (e.getSource().equals(clearButton)) {
columnsManager.disableAllProperties();
okButton.setEnabled(false);
updatePanelList();
} else if (e.getSource().equals(toggleSelectUnselectAllCheckBox)) {
if (toggleSelectUnselectAllCheckBox.isSelected()) {
columnsManager.enableAllProperties();
okButton.setEnabled(true);
} else {
columnsManager.disableAllProperties();
okButton.setEnabled(false);
}
updatePanelList();
} else if (e.getSource().equals(combo)) {
updatePanelList();
} else if (e.getSource().equals(okButton)) {
columnsManager.saveSelectedProps(saveFileName);
okButtonClicked = true;
dispose();
} else {
} else { // checkbox
JCheckBox source = (JCheckBox) e.getSource();
String nonLocalizedText = LocalizedProperties.getNonLocalizedField(source.getText());
boolean isSelected = source.isSelected();
if (columnsManager.getSelectedProperties().size() == 1 && !isSelected) {
updatePanelList();
return;
okButton.setEnabled(false);
} else {
okButton.setEnabled(true);
}
columnsManager.allCheckBoxesState.put(nonLocalizedText, isSelected);
}
Expand All @@ -159,7 +158,6 @@ protected void updatePanelList() {
check.setSelected(true);
check.addActionListener(this);
listPanel.add(check);
check.setEnabled(!isSelectOnlyVisible());
}
}
dialog.revalidate();
Expand Down

0 comments on commit db9c48e

Please sign in to comment.