Skip to content

Commit

Permalink
#52: folder for columns; handle 'checkVisible' when more than 100 vis…
Browse files Browse the repository at this point in the history
…ible properties
  • Loading branch information
FelipeFcosta committed Feb 10, 2023
1 parent 5b277a5 commit 0c3171e
Show file tree
Hide file tree
Showing 17 changed files with 102 additions and 71 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ ColumnsManager.Filter=[Type to filter]
ColumnsManager.ToggleSelectAll=Select / Unselect All
ColumnsManager.WindowsEvt=Windows Events
ColumnsManager.LimitReachedMessage=You can select up to {0} properties
ColumnsManager.LimitReachedVisibleMessage=The first {0} visible properties were selected
ColumnsManager.LimitReachedTitle=Limit reached
CompositeViewer.Title=Viewer
CopyProperties.Copying=Copying
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@
import iped.app.timelinegraph.swingworkers.HighlightWorker;
import iped.app.ui.App;
import iped.app.ui.ClearFilterListener;
import iped.app.ui.ColumnsManager;
import iped.app.ui.columns.ColumnsManager;
import iped.app.ui.themes.ThemeManager;
import iped.data.IItemId;
import iped.engine.search.QueryBuilder;
Expand Down
2 changes: 2 additions & 0 deletions iped-app/src/main/java/iped/app/ui/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,8 @@
import iped.app.config.LogConfiguration;
import iped.app.config.XMLResultSetViewerConfiguration;
import iped.app.graph.AppGraphAnalytics;
import iped.app.ui.columns.ColumnsManager;
import iped.app.ui.columns.ColumnsManagerUI;
import iped.app.ui.controls.CSelButton;
import iped.app.ui.controls.CustomButton;
import iped.app.ui.themes.ThemeManager;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

import javax.swing.text.JTextComponent;

import iped.app.ui.columns.ColumnsManager;
import iped.localization.LocalizedProperties;

public class AutoCompleteColumns {
Expand Down
3 changes: 3 additions & 0 deletions iped-app/src/main/java/iped/app/ui/MenuListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@
import org.slf4j.LoggerFactory;

import iped.app.ui.TreeViewModel.Node;
import iped.app.ui.columns.ColumnsManager;
import iped.app.ui.columns.ColumnsManagerUI;
import iped.app.ui.columns.ColumnsSelectUI;
import iped.app.ui.utils.UiIconSize;
import iped.app.ui.utils.UiScale;
import iped.data.IIPEDSource;
Expand Down
1 change: 1 addition & 0 deletions iped-app/src/main/java/iped/app/ui/MetadataPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import iped.app.ui.columns.ColumnsManager;
import iped.app.ui.controls.HintTextField;
import iped.app.ui.controls.HoverButton;
import iped.data.IItemId;
Expand Down
4 changes: 2 additions & 2 deletions iped-app/src/main/java/iped/app/ui/ProgressCellRenderer.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,14 @@
import javax.swing.SwingConstants;
import javax.swing.table.TableCellRenderer;

class ProgressCellRenderer extends JProgressBar implements TableCellRenderer {
public class ProgressCellRenderer extends JProgressBar implements TableCellRenderer {

/**
*
*/
private static final long serialVersionUID = 1L;

ProgressCellRenderer() {
public ProgressCellRenderer() {
super(SwingConstants.HORIZONTAL);
setBorderPainted(false);
setMaximum(100);
Expand Down
1 change: 1 addition & 0 deletions iped-app/src/main/java/iped/app/ui/ReportDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@

import iped.app.bootstrap.Bootstrap;
import iped.app.processing.CmdLineArgsImpl;
import iped.app.ui.columns.ColumnsSelectReportUI;
import iped.io.URLUtil;

public class ReportDialog implements ActionListener, TableModelListener {
Expand Down
2 changes: 2 additions & 0 deletions iped-app/src/main/java/iped/app/ui/ResultTableModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@
import org.apache.lucene.search.highlight.TextFragment;
import org.apache.lucene.util.BytesRef;

import iped.app.ui.columns.ColumnsManager;
import iped.app.ui.columns.ColumnsManagerUI;
import iped.data.IItemId;
import iped.engine.datasource.SleuthkitReader;
import iped.engine.localization.CategoryLocalization;
Expand Down
1 change: 1 addition & 0 deletions iped-app/src/main/java/iped/app/ui/TimelineListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import javax.swing.SortOrder;

import bibliothek.gui.dock.common.action.CButton;
import iped.app.ui.columns.ColumnsManagerUI;
import iped.properties.BasicProps;

public class TimelineListener implements ActionListener, ClearFilterListener {
Expand Down
1 change: 1 addition & 0 deletions iped-app/src/main/java/iped/app/ui/UICaseDataLoader.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import iped.app.ui.columns.ColumnsManagerUI;
import iped.engine.config.ConfigurationManager;
import iped.engine.core.Manager;
import iped.engine.data.IPEDMultiSource;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import iped.app.ui.columns.ColumnsManagerUI;
import iped.engine.search.QueryBuilder;
import iped.exception.ParseException;
import iped.exception.QueryNodeException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import org.slf4j.LoggerFactory;

import iped.app.graph.FilterSelectedEdges;
import iped.app.ui.columns.ColumnsManagerUI;
import iped.data.IItemId;
import iped.engine.data.IPEDSource;
import iped.engine.data.ItemId;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package iped.app.ui;
package iped.app.ui.columns;

import java.io.File;
import java.io.IOException;
Expand All @@ -20,6 +20,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import iped.app.ui.App;
import iped.app.ui.Messages;
import iped.app.ui.ResultTableModel;
import iped.data.IItemId;
import iped.engine.config.AnalysisConfig;
import iped.engine.config.ConfigurationManager;
Expand Down Expand Up @@ -104,27 +107,27 @@ private static final File getGlobalColsFile() {

public String[][] fieldGroups;

ColumnState colState = new ColumnState();
public ColumnState colState = new ColumnState();

protected ArrayList<String> loadedFields = new ArrayList<String>();

private boolean autoManageCols;

protected Map<String, Boolean> allCheckBoxesState = new HashMap<>();

public static ColumnsManager getInstance() {
if (instance == null)
instance = new ColumnsManager();
return instance;
}

public boolean isAutoManageCols() {
return autoManageCols;
}
public void setAutoManageCols(boolean autoManageCOls) {
this.autoManageCols = autoManageCOls;
}

public static ColumnsManager getInstance() {
if (instance == null)
instance = new ColumnsManager();
return instance;
}

@Override
public String[] getLoadedCols() {
String[] cols = loadedFields.toArray(new String[0]);
Expand All @@ -135,11 +138,25 @@ public ArrayList<String> getLoadedFields() {
return loadedFields;
}

static class ColumnState implements Serializable {
public static class ColumnState implements Serializable {

private static final long serialVersionUID = 1L;
List<Integer> initialWidths = new ArrayList<Integer>();
ArrayList<String> visibleFields = new ArrayList<String>();
public List<Integer> initialWidths = new ArrayList<Integer>();
public ArrayList<String> visibleFields = new ArrayList<String>();
}

protected ColumnsManager() {
allCheckBoxesState = new HashMap<>();

AnalysisConfig analysisConfig = ConfigurationManager.get().findObject(AnalysisConfig.class);
autoManageCols = analysisConfig.isAutoManageCols();

moduleDir = App.get().appCase.getAtomicSourceBySourceId(0).getModuleDir();

updateDinamicFields();

loadSavedCols();
initializeAllCheckBoxesState();
}

protected void saveSelectedProps(String propsFileName) {
Expand All @@ -158,8 +175,8 @@ protected void saveSelectedProps(String propsFileName) {
public void saveColumnsState() {
try {
ColumnState cs = new ColumnState();
for (int i = 0; i < App.get().resultsTable.getColumnModel().getColumnCount(); i++) {
TableColumn tc = App.get().resultsTable.getColumnModel().getColumn(i);
for (int i = 0; i < App.get().getResultsTable().getColumnModel().getColumnCount(); i++) {
TableColumn tc = App.get().getResultsTable().getColumnModel().getColumn(i);
if (tc.getModelIndex() >= ResultTableModel.fixedCols.length) {
int idx = tc.getModelIndex() - ResultTableModel.fixedCols.length;
cs.visibleFields.add(loadedFields.get(idx));
Expand All @@ -176,20 +193,6 @@ public void saveColumnsState() {
}
}

protected ColumnsManager() {
allCheckBoxesState = new HashMap<>();

AnalysisConfig analysisConfig = ConfigurationManager.get().findObject(AnalysisConfig.class);
autoManageCols = analysisConfig.isAutoManageCols();

moduleDir = App.get().appCase.getAtomicSourceBySourceId(0).getModuleDir();

updateDinamicFields();

loadSavedCols();
initializeAllCheckBoxesState();
}

protected File getColStateFile() {
caseCols = new File(moduleDir, VISIBLE_COLUMNS_FILENAME);
File cols = caseCols;
Expand Down Expand Up @@ -255,14 +258,13 @@ public static ArrayList<String> loadSelectedFields(String propsFileName) {


protected Set<String> getUsedCols(ProgressDialog progress) {

Collator collator = Collator.getInstance();
collator.setStrength(Collator.PRIMARY);
TreeSet<String> dinamicFields = new TreeSet<>(collator);

int[] docs = new int[App.get().ipedResult.getLength()];
int[] docs = new int[App.get().getResults().getLength()];
int i = 0;
for (IItemId item : App.get().ipedResult.getIterator())
for (IItemId item : App.get().getResults().getIterator())
docs[i++] = App.get().appCase.getLuceneId(item);

int MAX_ITEMS_TO_CHECK = 50;
Expand Down
Loading

0 comments on commit 0c3171e

Please sign in to comment.