diff --git a/.gitignore b/.gitignore index 3514810..c456dff 100644 --- a/.gitignore +++ b/.gitignore @@ -115,3 +115,5 @@ fabric.properties .idea/**/markdown-navigator/ # End of https://www.gitignore.io/api/java,jetbrains + +sample/ diff --git a/.idea/misc.xml b/.idea/misc.xml index 108a8ec..844ed26 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -2,7 +2,8 @@ diff --git a/README.md b/README.md index 6edc065..6cd71de 100644 --- a/README.md +++ b/README.md @@ -14,12 +14,16 @@ The project specification document is available [here](http://didattica.agentgro The documentation for this project is available [here](https://gh.steffo.eu/cleaver). -> It hasn't been written yet! +It is being hosted on GitHub Pages. ## Screenshots ### Progress +#### 2020-01-03 + +![](https://i.imgur.com/4ZUVo2v.png) + #### 2019-12-07 ![](https://i.imgur.com/nlmvEUX.png) diff --git a/docs/allclasses-index.html b/docs/allclasses-index.html index e217694..eeb05e6 100644 --- a/docs/allclasses-index.html +++ b/docs/allclasses-index.html @@ -2,13 +2,14 @@ - + All Classes + @@ -20,7 +21,7 @@ - @@ -99,7 +100,9 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height")); eu.steffo.cleaver.gui.panels -  + +
A package containing most JPanels used by the Cleaver GUI.
+ eu.steffo.cleaver.gui.rows @@ -117,11 +120,15 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height")); eu.steffo.cleaver.logic.compress -  + +
The package containing classes related to the (de)compression functionality.
+ eu.steffo.cleaver.logic.crypt -  + +
The package containing classes related to the encryption/decryption functionality.
+ eu.steffo.cleaver.logic.progress @@ -129,7 +136,9 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height")); eu.steffo.cleaver.logic.split -  + +
The package containing classes related to the file splitting/merging functionality.
+ diff --git a/docs/constant-values.html b/docs/constant-values.html index 47f01db..c661352 100644 --- a/docs/constant-values.html +++ b/docs/constant-values.html @@ -2,13 +2,14 @@ - + Constant Field Values + diff --git a/docs/deprecated-list.html b/docs/deprecated-list.html index 0bc3f4d..d70342e 100644 --- a/docs/deprecated-list.html +++ b/docs/deprecated-list.html @@ -2,13 +2,14 @@ - + Deprecated List + diff --git a/docs/help-doc.html b/docs/help-doc.html index 52c28c2..793cdfb 100644 --- a/docs/help-doc.html +++ b/docs/help-doc.html @@ -2,13 +2,14 @@ - + API Help + diff --git a/docs/index-files/index-1.html b/docs/index-files/index-1.html index 062a0be..e0d8d68 100644 --- a/docs/index-files/index-1.html +++ b/docs/index-files/index-1.html @@ -2,13 +2,14 @@ - + C-Index + @@ -74,21 +75,33 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));

C

ChopAndStitchPanel - Class in eu.steffo.cleaver.gui.panels
-
 
+
+
This panel displays a ChopPanel and a StitchPanel horizontally side-by-side.
+
ChopAndStitchPanel(ActionListener, ActionListener) - Constructor for class eu.steffo.cleaver.gui.panels.ChopAndStitchPanel
-
 
+
+
Construct a ChopAndStitchPanel by instantiating and adding a ChopPanel and a StitchPanel to it.
+
ChopJob - Class in eu.steffo.cleaver.logic
-
 
+
+
A Job that converts regular files into chopped (*.chp + *.cXX) files.
+
ChopJob(File, SplitConfig, CryptConfig, CompressConfig) - Constructor for class eu.steffo.cleaver.logic.ChopJob
 
-
ChopJob(File, Runnable, SplitConfig, CryptConfig, CompressConfig) - Constructor for class eu.steffo.cleaver.logic.ChopJob
+
ChopJob(File, SplitConfig, CryptConfig, CompressConfig, Runnable) - Constructor for class eu.steffo.cleaver.logic.ChopJob
 
chopPanel - Variable in class eu.steffo.cleaver.gui.panels.ChopAndStitchPanel
-
 
+
+
The ChopPanel, displayed on the left.
+
ChopPanel - Class in eu.steffo.cleaver.gui.panels
-
 
+
+
The CreateJobPanel allowing the creation of ChopJobs.
+
ChopPanel(ActionListener) - Constructor for class eu.steffo.cleaver.gui.panels.ChopPanel
-
 
+
+
Construct a ChopPanel.
+
chopStitchPanel - Variable in class eu.steffo.cleaver.gui.CleaverFrame
The panel allowing the creation of new Jobs.
@@ -111,60 +124,92 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
close() - Method in class eu.steffo.cleaver.logic.split.SplitFileOutputStream
 
-
compressConfig - Variable in class eu.steffo.cleaver.logic.Job
-
 
CompressConfig - Class in eu.steffo.cleaver.logic.compress
-
 
+
+
A class containing the configuration for the compression step of a Job.
+
CompressConfig() - Constructor for class eu.steffo.cleaver.logic.compress.CompressConfig
 
compressionCheckBox - Variable in class eu.steffo.cleaver.gui.rows.option.CompressRow
 
-
compressOptionPanel - Variable in class eu.steffo.cleaver.gui.panels.ChopPanel
-
 
+
compressRow - Variable in class eu.steffo.cleaver.gui.panels.ChopPanel
+
+
The Row to enable/disable the compression functionality.
+
CompressRow - Class in eu.steffo.cleaver.gui.rows.option
 
CompressRow() - Constructor for class eu.steffo.cleaver.gui.rows.option.CompressRow
 
createAndAddChopJobs(ArrayList<Job>, Runnable) - Method in class eu.steffo.cleaver.gui.panels.ChopAndStitchPanel
-
 
+
+
Propagate downwards the click of the Create Jobs button on the ChopAndStitchPanel.chopPanel.
+
createAndAddJobs(ArrayList<Job>, Runnable) - Method in class eu.steffo.cleaver.gui.panels.ChopPanel
-
 
+
+
Add to the jobs ArrayList the ChopJobs for the current settings.
+
createAndAddJobs(ArrayList<Job>, Runnable) - Method in class eu.steffo.cleaver.gui.panels.StitchPanel
-
 
+
+
Add to the jobs ArrayList the StitchJobs for the current settings.
+
createAndAddStitchJobs(ArrayList<Job>, Runnable) - Method in class eu.steffo.cleaver.gui.panels.ChopAndStitchPanel
-
 
+
+
Propagate downwards the click of the Create Jobs button on the ChopAndStitchPanel.stitchPanel.
+
createJobButton - Variable in class eu.steffo.cleaver.gui.rows.CreateJobButtonRow
 
-
createJobButtonPanel - Variable in class eu.steffo.cleaver.gui.panels.ChopPanel
-
 
-
createJobButtonPanel - Variable in class eu.steffo.cleaver.gui.panels.StitchPanel
-
 
+
createJobButtonRow - Variable in class eu.steffo.cleaver.gui.panels.ChopPanel
+
+
The Row containing the button to create the ChopJobs.
+
+
createJobButtonRow - Variable in class eu.steffo.cleaver.gui.panels.StitchPanel
+
+
The Row containing the button to create the StitchJobs.
+
CreateJobButtonRow - Class in eu.steffo.cleaver.gui.rows
 
CreateJobButtonRow(ActionListener) - Constructor for class eu.steffo.cleaver.gui.rows.CreateJobButtonRow
 
CreateJobPanel - Class in eu.steffo.cleaver.gui.panels
-
 
-
CreateJobPanel(ActionListener) - Constructor for class eu.steffo.cleaver.gui.panels.CreateJobPanel
-
 
+
+
The base class for the two job creation panels (ChopPanel and StitchPanel).
+
+
CreateJobPanel() - Constructor for class eu.steffo.cleaver.gui.panels.CreateJobPanel
+
+
Construct the job panel by setting its layout, adding a border, the TitleRow and the FileSelectRow.
+
createNextFileOutputStream() - Method in class eu.steffo.cleaver.logic.split.SplitFileOutputStream
 
cryptCheckBox - Variable in class eu.steffo.cleaver.gui.rows.option.CryptRow
 
-
cryptConfig - Variable in class eu.steffo.cleaver.logic.Job
-
 
CryptConfig - Class in eu.steffo.cleaver.logic.crypt
-
 
+
+
A class containing the configuration for the encryption/decryption step of a Job.
+
CryptConfig(String) - Constructor for class eu.steffo.cleaver.logic.crypt.CryptConfig
+
+
Construct a new CryptConfig with a specific encryption key.
+
+
CryptInputStream - Class in eu.steffo.cleaver.logic.crypt
 
-
cryptOptionPanel - Variable in class eu.steffo.cleaver.gui.panels.ChopPanel
+
CryptInputStream(InputStream) - Constructor for class eu.steffo.cleaver.logic.crypt.CryptInputStream
 
+
CryptOutputStream - Class in eu.steffo.cleaver.logic.crypt
+
 
+
CryptOutputStream(OutputStream) - Constructor for class eu.steffo.cleaver.logic.crypt.CryptOutputStream
+
 
+
cryptRow - Variable in class eu.steffo.cleaver.gui.panels.ChopPanel
+
+
The Row to enable/disable the encryption functionality.
+
CryptRow - Class in eu.steffo.cleaver.gui.rows.option
 
CryptRow() - Constructor for class eu.steffo.cleaver.gui.rows.option.CryptRow
 
currentByteCount - Variable in class eu.steffo.cleaver.logic.split.SplitFileOutputStream
 
+
currentFileCount - Variable in class eu.steffo.cleaver.logic.split.SplitFileInputStream
+
 
currentFileCount - Variable in class eu.steffo.cleaver.logic.split.SplitFileOutputStream
 
currentFileOutputStream - Variable in class eu.steffo.cleaver.logic.split.SplitFileOutputStream
diff --git a/docs/index-files/index-10.html b/docs/index-files/index-10.html index d3e4422..d689b91 100644 --- a/docs/index-files/index-10.html +++ b/docs/index-files/index-10.html @@ -2,13 +2,14 @@ - + N-Index + diff --git a/docs/index-files/index-11.html b/docs/index-files/index-11.html index 957fd57..8abd286 100644 --- a/docs/index-files/index-11.html +++ b/docs/index-files/index-11.html @@ -2,13 +2,14 @@ - + O-Index + diff --git a/docs/index-files/index-12.html b/docs/index-files/index-12.html index 91a67a3..c2acf1b 100644 --- a/docs/index-files/index-12.html +++ b/docs/index-files/index-12.html @@ -2,13 +2,14 @@ - + P-Index + @@ -74,8 +75,10 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));

P

parseChp(Document, String) - Method in class eu.steffo.cleaver.logic.StitchJob
-
 
-
parts - Variable in class eu.steffo.cleaver.logic.split.SplitByPartsConfig
+
+
Read a Document and set StitchJob.splitConfig, StitchJob.cryptConfig and StitchJob.compressConfig accordingly.
+
+
partSize - Variable in class eu.steffo.cleaver.logic.split.SplitFileInputStream
 
partsLabel - Variable in class eu.steffo.cleaver.gui.rows.option.SplitRow
 
@@ -87,8 +90,6 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
ProgrammingError() - Constructor for exception eu.steffo.cleaver.errors.ProgrammingError
 
-
progress - Variable in class eu.steffo.cleaver.logic.Job
-
 
progress - Variable in class eu.steffo.cleaver.logic.progress.WorkingProgress
 
Progress - Class in eu.steffo.cleaver.logic.progress
diff --git a/docs/index-files/index-13.html b/docs/index-files/index-13.html index 092b465..f899163 100644 --- a/docs/index-files/index-13.html +++ b/docs/index-files/index-13.html @@ -2,13 +2,14 @@ - + R-Index + @@ -73,12 +74,18 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));

R

+
read() - Method in class eu.steffo.cleaver.logic.split.SplitFileInputStream
+
 
Row - Class in eu.steffo.cleaver.gui.rows
 
Row() - Constructor for class eu.steffo.cleaver.gui.rows.Row
 
run() - Method in class eu.steffo.cleaver.logic.ChopJob
 
+
run() - Method in class eu.steffo.cleaver.logic.Job
+
+
The function that is run on a different thread when Thread.start() is called.
+
run() - Method in class eu.steffo.cleaver.logic.StitchJob
 
diff --git a/docs/index-files/index-14.html b/docs/index-files/index-14.html index f6bd465..6873e5c 100644 --- a/docs/index-files/index-14.html +++ b/docs/index-files/index-14.html @@ -2,13 +2,14 @@ - + S-Index + @@ -100,9 +101,9 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
setKey(String) - Method in class eu.steffo.cleaver.gui.rows.option.KeyRow
 
setProgress(Progress) - Method in class eu.steffo.cleaver.logic.Job
-
 
-
size - Variable in class eu.steffo.cleaver.logic.split.SplitBySizeConfig
-
 
+
+
Set the progress of the job to a different value.
+
sizeLabel - Variable in class eu.steffo.cleaver.gui.rows.option.SplitRow
 
sizeTextField - Variable in class eu.steffo.cleaver.gui.rows.option.SplitRow
@@ -119,38 +120,60 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
 
splitCheckBox - Variable in class eu.steffo.cleaver.gui.rows.option.SplitRow
 
-
splitConfig - Variable in class eu.steffo.cleaver.logic.Job
-
 
SplitConfig - Class in eu.steffo.cleaver.logic.split
-
 
+
+
A class containing the configuration for the split/merge step of a Job.
+
SplitConfig() - Constructor for class eu.steffo.cleaver.logic.split.SplitConfig
 
+
SplitFileInputStream - Class in eu.steffo.cleaver.logic.split
+
 
+
SplitFileInputStream(String, int) - Constructor for class eu.steffo.cleaver.logic.split.SplitFileInputStream
+
 
SplitFileOutputStream - Class in eu.steffo.cleaver.logic.split
 
SplitFileOutputStream(String, long) - Constructor for class eu.steffo.cleaver.logic.split.SplitFileOutputStream
 
-
splitOptionPanel - Variable in class eu.steffo.cleaver.gui.panels.ChopPanel
-
 
+
splitRow - Variable in class eu.steffo.cleaver.gui.panels.ChopPanel
+
+
The Row to enable/disable the file split functionality.
+
SplitRow - Class in eu.steffo.cleaver.gui.rows.option
 
SplitRow() - Constructor for class eu.steffo.cleaver.gui.rows.option.SplitRow
 
startButton - Variable in class eu.steffo.cleaver.gui.panels.JobsButtonsPanel
-
 
+
+
The Start incomplete jobs button.
+
StitchJob - Class in eu.steffo.cleaver.logic
-
 
-
StitchJob(File, Runnable, String) - Constructor for class eu.steffo.cleaver.logic.StitchJob
-
 
+
+
A Job that converts chopped (*.chp + *.cXX) files back into regular files.
+
+
StitchJob(File) - Constructor for class eu.steffo.cleaver.logic.StitchJob
+
+
Construct a StitchJob, specifying the *.chp file to import the settings from.
+
StitchJob(File, String) - Constructor for class eu.steffo.cleaver.logic.StitchJob
-
 
+
+
Construct a StitchJob, specifying the *.chp file to import the settings from and an encryption key to use while decrypting the files.
+
+
StitchJob(File, String, Runnable) - Constructor for class eu.steffo.cleaver.logic.StitchJob
+
+
Construct a StitchJob, and additionally specify the Runnable that should be called on progress updates..
+
stitchPanel - Variable in class eu.steffo.cleaver.gui.panels.ChopAndStitchPanel
-
 
+
+
The StitchPanel, displayed on the right.
+
StitchPanel - Class in eu.steffo.cleaver.gui.panels
-
 
+
+
The CreateJobPanel allowing the creation of StitchJobs.
+
StitchPanel(ActionListener) - Constructor for class eu.steffo.cleaver.gui.panels.StitchPanel
-
 
-
swingCallLaterOnProgressChanges - Variable in class eu.steffo.cleaver.logic.Job
-
 
+
+
Construct a StitchPanel.
+
C D E F G I J K M N O P R S T U W 
All Classes All Packages diff --git a/docs/index-files/index-15.html b/docs/index-files/index-15.html index 3cdbac9..320e171 100644 --- a/docs/index-files/index-15.html +++ b/docs/index-files/index-15.html @@ -2,13 +2,14 @@ - + T-Index + @@ -74,11 +75,17 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));

T

table - Variable in class eu.steffo.cleaver.gui.panels.JobsTablePanel
-
 
+
+
The jobs table.
+
tableModel - Variable in class eu.steffo.cleaver.gui.panels.JobsTablePanel
-
 
+
+
The TableModel instance for the Table.
+
tableScrollPane - Variable in class eu.steffo.cleaver.gui.panels.JobsTablePanel
-
 
+
+
The JScrollPane wrapping the jobs Table.
+
Test - Class in eu.steffo.cleaver
 
Test() - Constructor for class eu.steffo.cleaver.Test
@@ -86,21 +93,29 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
titleLabel - Variable in class eu.steffo.cleaver.gui.rows.TitleRow
 
titlePanel - Variable in class eu.steffo.cleaver.gui.panels.CreateJobPanel
-
 
+
+
The first row, containing the name of the panel ("Chop" or "Stitch")
+
TitleRow - Class in eu.steffo.cleaver.gui.rows
 
TitleRow(String) - Constructor for class eu.steffo.cleaver.gui.rows.TitleRow
 
toElement(Document) - Method in class eu.steffo.cleaver.logic.compress.CompressConfig
-
 
+
+
Create a Element representing this CompressConfig (to be used in *.chp metadata files).
+
toElement(Document) - Method in class eu.steffo.cleaver.logic.crypt.CryptConfig
-
 
+
+
Create a Element representing this CryptConfig (to be used in *.chp metadata files).
+
toElement(Document) - Method in class eu.steffo.cleaver.logic.split.SplitByPartsConfig
 
toElement(Document) - Method in class eu.steffo.cleaver.logic.split.SplitBySizeConfig
 
toElement(Document) - Method in class eu.steffo.cleaver.logic.split.SplitConfig
-
 
+
+
Create a Element representing this SplitConfig (to be used in *.chp metadata files).
+
toString() - Method in class eu.steffo.cleaver.logic.compress.CompressConfig
 
toString() - Method in class eu.steffo.cleaver.logic.crypt.CryptConfig
diff --git a/docs/index-files/index-2.html b/docs/index-files/index-2.html index 6033f1f..f8fc6f7 100644 --- a/docs/index-files/index-2.html +++ b/docs/index-files/index-2.html @@ -2,13 +2,14 @@ - + D-Index + @@ -74,7 +75,9 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));

D

deleteButton - Variable in class eu.steffo.cleaver.gui.panels.JobsButtonsPanel
-
 
+
+
The Delete selected jobs button.
+
C D E F G I J K M N O P R S T U W 
All Classes All Packages diff --git a/docs/index-files/index-3.html b/docs/index-files/index-3.html index 8b42738..918c4c0 100644 --- a/docs/index-files/index-3.html +++ b/docs/index-files/index-3.html @@ -2,13 +2,14 @@ - + E-Index + @@ -96,7 +97,9 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
A package containing the elements for a Cleaver GUI.
eu.steffo.cleaver.gui.panels - package eu.steffo.cleaver.gui.panels
-
 
+
+
A package containing most JPanels used by the Cleaver GUI.
+
eu.steffo.cleaver.gui.rows - package eu.steffo.cleaver.gui.rows
 
eu.steffo.cleaver.gui.rows.option - package eu.steffo.cleaver.gui.rows.option
@@ -106,13 +109,19 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
A package containing the core logic of the program.
eu.steffo.cleaver.logic.compress - package eu.steffo.cleaver.logic.compress
-
 
+
+
The package containing classes related to the (de)compression functionality.
+
eu.steffo.cleaver.logic.crypt - package eu.steffo.cleaver.logic.crypt
-
 
+
+
The package containing classes related to the encryption/decryption functionality.
+
eu.steffo.cleaver.logic.progress - package eu.steffo.cleaver.logic.progress
 
eu.steffo.cleaver.logic.split - package eu.steffo.cleaver.logic.split
-
 
+
+
The package containing classes related to the file splitting/merging functionality.
+
C D E F G I J K M N O P R S T U W 
All Classes All Packages diff --git a/docs/index-files/index-4.html b/docs/index-files/index-4.html index 2eb2ab2..e281d6c 100644 --- a/docs/index-files/index-4.html +++ b/docs/index-files/index-4.html @@ -2,13 +2,14 @@ - + F-Index + @@ -73,14 +74,16 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));

F

-
file - Variable in class eu.steffo.cleaver.logic.Job
+
fileBaseName - Variable in class eu.steffo.cleaver.logic.split.SplitFileInputStream
 
fileBaseName - Variable in class eu.steffo.cleaver.logic.split.SplitFileOutputStream
 
fileChooser - Variable in class eu.steffo.cleaver.gui.rows.FileSelectRow
 
fileSelectPanel - Variable in class eu.steffo.cleaver.gui.panels.CreateJobPanel
-
 
+
+
The second row, containing the file selector.
+
FileSelectRow - Class in eu.steffo.cleaver.gui.rows
 
FileSelectRow() - Constructor for class eu.steffo.cleaver.gui.rows.FileSelectRow
diff --git a/docs/index-files/index-5.html b/docs/index-files/index-5.html index e5809ec..acb718c 100644 --- a/docs/index-files/index-5.html +++ b/docs/index-files/index-5.html @@ -2,13 +2,14 @@ - + G-Index + @@ -85,14 +86,22 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
 
getCompressConfig() - Method in class eu.steffo.cleaver.logic.Job
 
+
getCompressConfig() - Method in class eu.steffo.cleaver.logic.StitchJob
+
 
getCryptConfig() - Method in class eu.steffo.cleaver.gui.rows.option.CryptRow
 
getCryptConfig() - Method in class eu.steffo.cleaver.logic.ChopJob
 
getCryptConfig() - Method in class eu.steffo.cleaver.logic.Job
 
+
getCryptConfig() - Method in class eu.steffo.cleaver.logic.StitchJob
+
 
+
getFile() - Method in class eu.steffo.cleaver.logic.ChopJob
+
 
getFile() - Method in class eu.steffo.cleaver.logic.Job
 
+
getFile() - Method in class eu.steffo.cleaver.logic.StitchJob
+
 
getKey() - Method in class eu.steffo.cleaver.gui.rows.option.KeyRow
 
getKey() - Method in class eu.steffo.cleaver.logic.crypt.CryptConfig
@@ -121,6 +130,8 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
 
getSplitConfig() - Method in class eu.steffo.cleaver.logic.Job
 
+
getSplitConfig() - Method in class eu.steffo.cleaver.logic.StitchJob
+
 
getType() - Method in class eu.steffo.cleaver.logic.ChopJob
 
getType() - Method in class eu.steffo.cleaver.logic.Job
diff --git a/docs/index-files/index-6.html b/docs/index-files/index-6.html index 26d7fea..3a5e1ec 100644 --- a/docs/index-files/index-6.html +++ b/docs/index-files/index-6.html @@ -2,13 +2,14 @@ - + I-Index + diff --git a/docs/index-files/index-7.html b/docs/index-files/index-7.html index 00a676d..ba2f335 100644 --- a/docs/index-files/index-7.html +++ b/docs/index-files/index-7.html @@ -2,13 +2,14 @@ - + J-Index + @@ -74,17 +75,26 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));

J

Job - Class in eu.steffo.cleaver.logic
-
 
-
Job(File) - Constructor for class eu.steffo.cleaver.logic.Job
-
 
-
Job(File, Runnable) - Constructor for class eu.steffo.cleaver.logic.Job
-
 
+
+
A Thread that allows access to the basic .
+
+
Job() - Constructor for class eu.steffo.cleaver.logic.Job
+
+
Construct a Job, setting its progress to Not started.
+
+
Job(Runnable) - Constructor for class eu.steffo.cleaver.logic.Job
+
+
Construct a Job, then add to it a Runnable that will be invoked through invokeLater on progress + changes.
+
jobs - Variable in class eu.steffo.cleaver.gui.CleaverFrame
A reference to the ArrayList where the Jobs should be contained.
jobs - Variable in class eu.steffo.cleaver.gui.panels.JobsTablePanel
-
 
+
+
A reference to the ArrayList of Jobs that should be displayed.
+
jobs - Static variable in class eu.steffo.cleaver.Main
The ArrayList of Jobs that the CleaverFrame will manipulate.
@@ -94,9 +104,13 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
The panel containing jobs-related buttons, such as Delete selected or Run all.
JobsButtonsPanel - Class in eu.steffo.cleaver.gui.panels
-
 
+
+
A panel that holds the buttons to perform actions on jobs.
+
JobsButtonsPanel(ActionListener, ActionListener) - Constructor for class eu.steffo.cleaver.gui.panels.JobsButtonsPanel
-
 
+
+
Construct a JobsButtonPanel.
+
JobsTableModel() - Constructor for class eu.steffo.cleaver.gui.panels.JobsTablePanel.JobsTableModel
 
jobsTablePanel - Variable in class eu.steffo.cleaver.gui.CleaverFrame
@@ -104,11 +118,17 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
The panel containing the Jobs table.
JobsTablePanel - Class in eu.steffo.cleaver.gui.panels
-
 
+
+
The Panel containing the jobs Table.
+
JobsTablePanel(ArrayList<Job>) - Constructor for class eu.steffo.cleaver.gui.panels.JobsTablePanel
-
 
+
+
Construct a JobsTablePanel.
+
JobsTablePanel.JobsTableModel - Class in eu.steffo.cleaver.gui.panels
-
 
+
+
The TableModel of the jobs table.
+
C D E F G I J K M N O P R S T U W 
All Classes All Packages diff --git a/docs/index-files/index-8.html b/docs/index-files/index-8.html index 30585e1..f95e879 100644 --- a/docs/index-files/index-8.html +++ b/docs/index-files/index-8.html @@ -2,13 +2,14 @@ - + K-Index + @@ -80,7 +81,9 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
keyLabel - Variable in class eu.steffo.cleaver.gui.rows.option.KeyRow
 
keyOptionRow - Variable in class eu.steffo.cleaver.gui.panels.StitchPanel
-
 
+
+
The Row to select the encryption key.
+
KeyRow - Class in eu.steffo.cleaver.gui.rows.option
 
KeyRow() - Constructor for class eu.steffo.cleaver.gui.rows.option.KeyRow
diff --git a/docs/index-files/index-9.html b/docs/index-files/index-9.html index f0dccab..fbcfde6 100644 --- a/docs/index-files/index-9.html +++ b/docs/index-files/index-9.html @@ -2,13 +2,14 @@ - + M-Index + diff --git a/docs/index.html b/docs/index.html index 1b7e310..c66a5ca 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,7 +2,7 @@ - + Generated Documentation (Untitled) diff --git a/docs/member-search-index.js b/docs/member-search-index.js index 7a509cb..d429af5 100644 --- a/docs/member-search-index.js +++ b/docs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"eu.steffo.cleaver.gui.panels","c":"ChopAndStitchPanel","l":"ChopAndStitchPanel(ActionListener, ActionListener)","url":"%3Cinit%3E(java.awt.event.ActionListener,java.awt.event.ActionListener)"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"ChopJob(File, Runnable, SplitConfig, CryptConfig, CompressConfig)","url":"%3Cinit%3E(java.io.File,java.lang.Runnable,eu.steffo.cleaver.logic.split.SplitConfig,eu.steffo.cleaver.logic.crypt.CryptConfig,eu.steffo.cleaver.logic.compress.CompressConfig)"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"ChopJob(File, SplitConfig, CryptConfig, CompressConfig)","url":"%3Cinit%3E(java.io.File,eu.steffo.cleaver.logic.split.SplitConfig,eu.steffo.cleaver.logic.crypt.CryptConfig,eu.steffo.cleaver.logic.compress.CompressConfig)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopAndStitchPanel","l":"chopPanel"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"ChopPanel(ActionListener)","url":"%3Cinit%3E(java.awt.event.ActionListener)"},{"p":"eu.steffo.cleaver.gui","c":"CleaverFrame","l":"chopStitchPanel"},{"p":"eu.steffo.cleaver.errors","c":"ChpFileError","l":"ChpFileError(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"clearSelectedFiles()"},{"p":"eu.steffo.cleaver.gui","c":"CleaverFrame","l":"CleaverFrame(ArrayList)","url":"%3Cinit%3E(java.util.ArrayList)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"close()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"compressConfig"},{"p":"eu.steffo.cleaver.logic.compress","c":"CompressConfig","l":"CompressConfig()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"compressionCheckBox"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"compressOptionPanel"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"CompressRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopAndStitchPanel","l":"createAndAddChopJobs(ArrayList, Runnable)","url":"createAndAddChopJobs(java.util.ArrayList,java.lang.Runnable)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"createAndAddJobs(ArrayList, Runnable)","url":"createAndAddJobs(java.util.ArrayList,java.lang.Runnable)"},{"p":"eu.steffo.cleaver.gui.panels","c":"StitchPanel","l":"createAndAddJobs(ArrayList, Runnable)","url":"createAndAddJobs(java.util.ArrayList,java.lang.Runnable)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopAndStitchPanel","l":"createAndAddStitchJobs(ArrayList, Runnable)","url":"createAndAddStitchJobs(java.util.ArrayList,java.lang.Runnable)"},{"p":"eu.steffo.cleaver.gui.rows","c":"CreateJobButtonRow","l":"createJobButton"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"createJobButtonPanel"},{"p":"eu.steffo.cleaver.gui.panels","c":"StitchPanel","l":"createJobButtonPanel"},{"p":"eu.steffo.cleaver.gui.rows","c":"CreateJobButtonRow","l":"CreateJobButtonRow(ActionListener)","url":"%3Cinit%3E(java.awt.event.ActionListener)"},{"p":"eu.steffo.cleaver.gui.panels","c":"CreateJobPanel","l":"CreateJobPanel(ActionListener)","url":"%3Cinit%3E(java.awt.event.ActionListener)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"createNextFileOutputStream()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"cryptCheckBox"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"cryptConfig"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptConfig","l":"CryptConfig(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"cryptOptionPanel"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"CryptRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"currentByteCount"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"currentFileCount"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"currentFileOutputStream"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsButtonsPanel","l":"deleteButton"},{"p":"eu.steffo.cleaver.logic.progress","c":"ErrorProgress","l":"error"},{"p":"eu.steffo.cleaver.logic.progress","c":"ErrorProgress","l":"ErrorProgress(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"file"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"fileBaseName"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"fileChooser"},{"p":"eu.steffo.cleaver.gui.panels","c":"CreateJobPanel","l":"fileSelectPanel"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"FileSelectRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic.progress","c":"FinishedProgress","l":"FinishedProgress()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"firstSeparator"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"getColumnClass(int)"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"getColumnCount()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"getColumnName(int)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"getCompressConfig()"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"getCompressConfig()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getCompressConfig()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"getCryptConfig()"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"getCryptConfig()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getCryptConfig()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getFile()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"getKey()"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptConfig","l":"getKey()"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"getPanelText()"},{"p":"eu.steffo.cleaver.gui.panels","c":"CreateJobPanel","l":"getPanelText()"},{"p":"eu.steffo.cleaver.gui.panels","c":"StitchPanel","l":"getPanelText()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitByPartsConfig","l":"getParts()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getProgress()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"getRowCount()"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"getSelectedFiles()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"getSelectedJobsIndexes()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitBySizeConfig","l":"getSize()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"getSplitConfig()"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"getSplitConfig()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getSplitConfig()"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"getType()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getType()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"getType()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"getValueAt(int, int)","url":"getValueAt(int,int)"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"isCellEditable(int, int)","url":"isCellEditable(int,int)"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"Job(File)","url":"%3Cinit%3E(java.io.File)"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"Job(File, Runnable)","url":"%3Cinit%3E(java.io.File,java.lang.Runnable)"},{"p":"eu.steffo.cleaver","c":"Main","l":"jobs"},{"p":"eu.steffo.cleaver.gui","c":"CleaverFrame","l":"jobs"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"jobs"},{"p":"eu.steffo.cleaver.gui","c":"CleaverFrame","l":"jobsButtonRow"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsButtonsPanel","l":"JobsButtonsPanel(ActionListener, ActionListener)","url":"%3Cinit%3E(java.awt.event.ActionListener,java.awt.event.ActionListener)"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"JobsTableModel()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui","c":"CleaverFrame","l":"jobsTablePanel"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"JobsTablePanel(ArrayList)","url":"%3Cinit%3E(java.util.ArrayList)"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptConfig","l":"key"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"keyLabel"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"keyLabel"},{"p":"eu.steffo.cleaver.gui.panels","c":"StitchPanel","l":"keyOptionRow"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"KeyRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"keyTextField"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"keyTextField"},{"p":"eu.steffo.cleaver","c":"Main","l":"Main()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver","c":"Main","l":"main(String[])","url":"main(java.lang.String[])"},{"p":"eu.steffo.cleaver","c":"Test","l":"main(String[])","url":"main(java.lang.String[])"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"maximumByteCount"},{"p":"eu.steffo.cleaver.logic.progress","c":"NotStartedProgress","l":"NotStartedProgress()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"openChp(File)","url":"openChp(java.io.File)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"optionalLabel"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"OptionRow","l":"OptionRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"parseChp(Document, String)","url":"parseChp(org.w3c.dom.Document,java.lang.String)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitByPartsConfig","l":"parts"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"partsLabel"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"partsTextField"},{"p":"eu.steffo.cleaver.errors","c":"ProgrammingError","l":"ProgrammingError()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"progress"},{"p":"eu.steffo.cleaver.logic.progress","c":"WorkingProgress","l":"progress"},{"p":"eu.steffo.cleaver.logic.progress","c":"Progress","l":"Progress()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.rows","c":"Row","l":"Row()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"run()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"run()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"secondSeparator"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"selectedFilesText"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"selectFilesButton"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"separator"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"setCompressConfig(CompressConfig)","url":"setCompressConfig(eu.steffo.cleaver.logic.compress.CompressConfig)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"setCryptConfig(CryptConfig)","url":"setCryptConfig(eu.steffo.cleaver.logic.crypt.CryptConfig)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"setEditable(boolean)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"setEditable(boolean)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"setEditable(boolean)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"OptionRow","l":"setEditable(boolean)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"setEditable(boolean)"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"setFileFilter(FileFilter)","url":"setFileFilter(javax.swing.filechooser.FileFilter)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"setKey(String)","url":"setKey(java.lang.String)"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"setProgress(Progress)","url":"setProgress(eu.steffo.cleaver.logic.progress.Progress)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitBySizeConfig","l":"size"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"sizeLabel"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"sizeTextField"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"sizeUnitLabel"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitByPartsConfig","l":"SplitByPartsConfig(int)","url":"%3Cinit%3E(int)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitBySizeConfig","l":"SplitBySizeConfig(long)","url":"%3Cinit%3E(long)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"splitCheckBox"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"splitConfig"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitConfig","l":"SplitConfig()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"SplitFileOutputStream(String, long)","url":"%3Cinit%3E(java.lang.String,long)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"splitOptionPanel"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"SplitRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsButtonsPanel","l":"startButton"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"StitchJob(File, Runnable, String)","url":"%3Cinit%3E(java.io.File,java.lang.Runnable,java.lang.String)"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"StitchJob(File, String)","url":"%3Cinit%3E(java.io.File,java.lang.String)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopAndStitchPanel","l":"stitchPanel"},{"p":"eu.steffo.cleaver.gui.panels","c":"StitchPanel","l":"StitchPanel(ActionListener)","url":"%3Cinit%3E(java.awt.event.ActionListener)"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"swingCallLaterOnProgressChanges"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"table"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"tableModel"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"tableScrollPane"},{"p":"eu.steffo.cleaver","c":"Test","l":"Test()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.rows","c":"TitleRow","l":"titleLabel"},{"p":"eu.steffo.cleaver.gui.panels","c":"CreateJobPanel","l":"titlePanel"},{"p":"eu.steffo.cleaver.gui.rows","c":"TitleRow","l":"TitleRow(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"eu.steffo.cleaver.logic.compress","c":"CompressConfig","l":"toElement(Document)","url":"toElement(org.w3c.dom.Document)"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptConfig","l":"toElement(Document)","url":"toElement(org.w3c.dom.Document)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitByPartsConfig","l":"toElement(Document)","url":"toElement(org.w3c.dom.Document)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitBySizeConfig","l":"toElement(Document)","url":"toElement(org.w3c.dom.Document)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitConfig","l":"toElement(Document)","url":"toElement(org.w3c.dom.Document)"},{"p":"eu.steffo.cleaver.logic.compress","c":"CompressConfig","l":"toString()"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptConfig","l":"toString()"},{"p":"eu.steffo.cleaver.logic.progress","c":"ErrorProgress","l":"toString()"},{"p":"eu.steffo.cleaver.logic.progress","c":"FinishedProgress","l":"toString()"},{"p":"eu.steffo.cleaver.logic.progress","c":"NotStartedProgress","l":"toString()"},{"p":"eu.steffo.cleaver.logic.progress","c":"WorkingProgress","l":"toString()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitByPartsConfig","l":"toString()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitBySizeConfig","l":"toString()"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"update()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"updateEnabledState()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"updateEnabledState()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"updateEnabledState()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"OptionRow","l":"updateEnabledState()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"updateEnabledState()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"updateTableChanged()"},{"p":"eu.steffo.cleaver.logic.progress","c":"WorkingProgress","l":"WorkingProgress()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic.progress","c":"WorkingProgress","l":"WorkingProgress(float)","url":"%3Cinit%3E(float)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"write(int)"}] \ No newline at end of file +memberSearchIndex = [{"p":"eu.steffo.cleaver.gui.panels","c":"ChopAndStitchPanel","l":"ChopAndStitchPanel(ActionListener, ActionListener)","url":"%3Cinit%3E(java.awt.event.ActionListener,java.awt.event.ActionListener)"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"ChopJob(File, SplitConfig, CryptConfig, CompressConfig)","url":"%3Cinit%3E(java.io.File,eu.steffo.cleaver.logic.split.SplitConfig,eu.steffo.cleaver.logic.crypt.CryptConfig,eu.steffo.cleaver.logic.compress.CompressConfig)"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"ChopJob(File, SplitConfig, CryptConfig, CompressConfig, Runnable)","url":"%3Cinit%3E(java.io.File,eu.steffo.cleaver.logic.split.SplitConfig,eu.steffo.cleaver.logic.crypt.CryptConfig,eu.steffo.cleaver.logic.compress.CompressConfig,java.lang.Runnable)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopAndStitchPanel","l":"chopPanel"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"ChopPanel(ActionListener)","url":"%3Cinit%3E(java.awt.event.ActionListener)"},{"p":"eu.steffo.cleaver.gui","c":"CleaverFrame","l":"chopStitchPanel"},{"p":"eu.steffo.cleaver.errors","c":"ChpFileError","l":"ChpFileError(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"clearSelectedFiles()"},{"p":"eu.steffo.cleaver.gui","c":"CleaverFrame","l":"CleaverFrame(ArrayList)","url":"%3Cinit%3E(java.util.ArrayList)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"close()"},{"p":"eu.steffo.cleaver.logic.compress","c":"CompressConfig","l":"CompressConfig()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"compressionCheckBox"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"compressRow"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"CompressRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopAndStitchPanel","l":"createAndAddChopJobs(ArrayList, Runnable)","url":"createAndAddChopJobs(java.util.ArrayList,java.lang.Runnable)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"createAndAddJobs(ArrayList, Runnable)","url":"createAndAddJobs(java.util.ArrayList,java.lang.Runnable)"},{"p":"eu.steffo.cleaver.gui.panels","c":"StitchPanel","l":"createAndAddJobs(ArrayList, Runnable)","url":"createAndAddJobs(java.util.ArrayList,java.lang.Runnable)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopAndStitchPanel","l":"createAndAddStitchJobs(ArrayList, Runnable)","url":"createAndAddStitchJobs(java.util.ArrayList,java.lang.Runnable)"},{"p":"eu.steffo.cleaver.gui.rows","c":"CreateJobButtonRow","l":"createJobButton"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"createJobButtonRow"},{"p":"eu.steffo.cleaver.gui.panels","c":"StitchPanel","l":"createJobButtonRow"},{"p":"eu.steffo.cleaver.gui.rows","c":"CreateJobButtonRow","l":"CreateJobButtonRow(ActionListener)","url":"%3Cinit%3E(java.awt.event.ActionListener)"},{"p":"eu.steffo.cleaver.gui.panels","c":"CreateJobPanel","l":"CreateJobPanel()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"createNextFileOutputStream()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"cryptCheckBox"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptConfig","l":"CryptConfig(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptInputStream","l":"CryptInputStream(InputStream)","url":"%3Cinit%3E(java.io.InputStream)"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptOutputStream","l":"CryptOutputStream(OutputStream)","url":"%3Cinit%3E(java.io.OutputStream)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"cryptRow"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"CryptRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"currentByteCount"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileInputStream","l":"currentFileCount"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"currentFileCount"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"currentFileOutputStream"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsButtonsPanel","l":"deleteButton"},{"p":"eu.steffo.cleaver.logic.progress","c":"ErrorProgress","l":"error"},{"p":"eu.steffo.cleaver.logic.progress","c":"ErrorProgress","l":"ErrorProgress(Throwable)","url":"%3Cinit%3E(java.lang.Throwable)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileInputStream","l":"fileBaseName"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"fileBaseName"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"fileChooser"},{"p":"eu.steffo.cleaver.gui.panels","c":"CreateJobPanel","l":"fileSelectPanel"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"FileSelectRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic.progress","c":"FinishedProgress","l":"FinishedProgress()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"firstSeparator"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"getColumnClass(int)"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"getColumnCount()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"getColumnName(int)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"getCompressConfig()"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"getCompressConfig()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getCompressConfig()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"getCompressConfig()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"getCryptConfig()"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"getCryptConfig()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getCryptConfig()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"getCryptConfig()"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"getFile()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getFile()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"getFile()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"getKey()"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptConfig","l":"getKey()"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"getPanelText()"},{"p":"eu.steffo.cleaver.gui.panels","c":"CreateJobPanel","l":"getPanelText()"},{"p":"eu.steffo.cleaver.gui.panels","c":"StitchPanel","l":"getPanelText()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitByPartsConfig","l":"getParts()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getProgress()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"getRowCount()"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"getSelectedFiles()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"getSelectedJobsIndexes()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitBySizeConfig","l":"getSize()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"getSplitConfig()"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"getSplitConfig()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getSplitConfig()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"getSplitConfig()"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"getType()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"getType()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"getType()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"getValueAt(int, int)","url":"getValueAt(int,int)"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"isCellEditable(int, int)","url":"isCellEditable(int,int)"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"Job()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"Job(Runnable)","url":"%3Cinit%3E(java.lang.Runnable)"},{"p":"eu.steffo.cleaver","c":"Main","l":"jobs"},{"p":"eu.steffo.cleaver.gui","c":"CleaverFrame","l":"jobs"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"jobs"},{"p":"eu.steffo.cleaver.gui","c":"CleaverFrame","l":"jobsButtonRow"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsButtonsPanel","l":"JobsButtonsPanel(ActionListener, ActionListener)","url":"%3Cinit%3E(java.awt.event.ActionListener,java.awt.event.ActionListener)"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel.JobsTableModel","l":"JobsTableModel()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui","c":"CleaverFrame","l":"jobsTablePanel"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"JobsTablePanel(ArrayList)","url":"%3Cinit%3E(java.util.ArrayList)"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptConfig","l":"key"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"keyLabel"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"keyLabel"},{"p":"eu.steffo.cleaver.gui.panels","c":"StitchPanel","l":"keyOptionRow"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"KeyRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"keyTextField"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"keyTextField"},{"p":"eu.steffo.cleaver","c":"Main","l":"Main()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver","c":"Main","l":"main(String[])","url":"main(java.lang.String[])"},{"p":"eu.steffo.cleaver","c":"Test","l":"main(String[])","url":"main(java.lang.String[])"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"maximumByteCount"},{"p":"eu.steffo.cleaver.logic.progress","c":"NotStartedProgress","l":"NotStartedProgress()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"openChp(File)","url":"openChp(java.io.File)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"optionalLabel"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"OptionRow","l":"OptionRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"parseChp(Document, String)","url":"parseChp(org.w3c.dom.Document,java.lang.String)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileInputStream","l":"partSize"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"partsLabel"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"partsTextField"},{"p":"eu.steffo.cleaver.errors","c":"ProgrammingError","l":"ProgrammingError()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic.progress","c":"WorkingProgress","l":"progress"},{"p":"eu.steffo.cleaver.logic.progress","c":"Progress","l":"Progress()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileInputStream","l":"read()"},{"p":"eu.steffo.cleaver.gui.rows","c":"Row","l":"Row()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic","c":"ChopJob","l":"run()"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"run()"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"run()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"secondSeparator"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"selectedFilesText"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"selectFilesButton"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"separator"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"setCompressConfig(CompressConfig)","url":"setCompressConfig(eu.steffo.cleaver.logic.compress.CompressConfig)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"setCryptConfig(CryptConfig)","url":"setCryptConfig(eu.steffo.cleaver.logic.crypt.CryptConfig)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"setEditable(boolean)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"setEditable(boolean)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"setEditable(boolean)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"OptionRow","l":"setEditable(boolean)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"setEditable(boolean)"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"setFileFilter(FileFilter)","url":"setFileFilter(javax.swing.filechooser.FileFilter)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"setKey(String)","url":"setKey(java.lang.String)"},{"p":"eu.steffo.cleaver.logic","c":"Job","l":"setProgress(Progress)","url":"setProgress(eu.steffo.cleaver.logic.progress.Progress)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"sizeLabel"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"sizeTextField"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"sizeUnitLabel"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitByPartsConfig","l":"SplitByPartsConfig(int)","url":"%3Cinit%3E(int)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitBySizeConfig","l":"SplitBySizeConfig(long)","url":"%3Cinit%3E(long)"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"splitCheckBox"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitConfig","l":"SplitConfig()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileInputStream","l":"SplitFileInputStream(String, int)","url":"%3Cinit%3E(java.lang.String,int)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"SplitFileOutputStream(String, long)","url":"%3Cinit%3E(java.lang.String,long)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopPanel","l":"splitRow"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"SplitRow()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsButtonsPanel","l":"startButton"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"StitchJob(File)","url":"%3Cinit%3E(java.io.File)"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"StitchJob(File, String)","url":"%3Cinit%3E(java.io.File,java.lang.String)"},{"p":"eu.steffo.cleaver.logic","c":"StitchJob","l":"StitchJob(File, String, Runnable)","url":"%3Cinit%3E(java.io.File,java.lang.String,java.lang.Runnable)"},{"p":"eu.steffo.cleaver.gui.panels","c":"ChopAndStitchPanel","l":"stitchPanel"},{"p":"eu.steffo.cleaver.gui.panels","c":"StitchPanel","l":"StitchPanel(ActionListener)","url":"%3Cinit%3E(java.awt.event.ActionListener)"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"table"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"tableModel"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"tableScrollPane"},{"p":"eu.steffo.cleaver","c":"Test","l":"Test()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.gui.rows","c":"TitleRow","l":"titleLabel"},{"p":"eu.steffo.cleaver.gui.panels","c":"CreateJobPanel","l":"titlePanel"},{"p":"eu.steffo.cleaver.gui.rows","c":"TitleRow","l":"TitleRow(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"eu.steffo.cleaver.logic.compress","c":"CompressConfig","l":"toElement(Document)","url":"toElement(org.w3c.dom.Document)"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptConfig","l":"toElement(Document)","url":"toElement(org.w3c.dom.Document)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitByPartsConfig","l":"toElement(Document)","url":"toElement(org.w3c.dom.Document)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitBySizeConfig","l":"toElement(Document)","url":"toElement(org.w3c.dom.Document)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitConfig","l":"toElement(Document)","url":"toElement(org.w3c.dom.Document)"},{"p":"eu.steffo.cleaver.logic.compress","c":"CompressConfig","l":"toString()"},{"p":"eu.steffo.cleaver.logic.crypt","c":"CryptConfig","l":"toString()"},{"p":"eu.steffo.cleaver.logic.progress","c":"ErrorProgress","l":"toString()"},{"p":"eu.steffo.cleaver.logic.progress","c":"FinishedProgress","l":"toString()"},{"p":"eu.steffo.cleaver.logic.progress","c":"NotStartedProgress","l":"toString()"},{"p":"eu.steffo.cleaver.logic.progress","c":"WorkingProgress","l":"toString()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitByPartsConfig","l":"toString()"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitBySizeConfig","l":"toString()"},{"p":"eu.steffo.cleaver.gui.rows","c":"FileSelectRow","l":"update()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CompressRow","l":"updateEnabledState()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"CryptRow","l":"updateEnabledState()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"KeyRow","l":"updateEnabledState()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"OptionRow","l":"updateEnabledState()"},{"p":"eu.steffo.cleaver.gui.rows.option","c":"SplitRow","l":"updateEnabledState()"},{"p":"eu.steffo.cleaver.gui.panels","c":"JobsTablePanel","l":"updateTable()"},{"p":"eu.steffo.cleaver.logic.progress","c":"WorkingProgress","l":"WorkingProgress()","url":"%3Cinit%3E()"},{"p":"eu.steffo.cleaver.logic.progress","c":"WorkingProgress","l":"WorkingProgress(float)","url":"%3Cinit%3E(float)"},{"p":"eu.steffo.cleaver.logic.split","c":"SplitFileOutputStream","l":"write(int)"}] \ No newline at end of file diff --git a/docs/overview-tree.html b/docs/overview-tree.html index b9633cc..82550b8 100644 --- a/docs/overview-tree.html +++ b/docs/overview-tree.html @@ -2,13 +2,14 @@ - + Class Hierarchy + @@ -148,9 +149,24 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
  • eu.steffo.cleaver.logic.compress.CompressConfig
  • eu.steffo.cleaver.logic.crypt.CryptConfig
  • +
  • java.io.InputStream (implements java.io.Closeable) + +
  • eu.steffo.cleaver.Main
  • java.io.OutputStream (implements java.io.Closeable, java.io.Flushable)
  • diff --git a/docs/serialized-form.html b/docs/serialized-form.html index a59ac87..e7785e5 100644 --- a/docs/serialized-form.html +++ b/docs/serialized-form.html @@ -2,13 +2,14 @@ - + Serialized Form + @@ -167,10 +168,12 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
  • chopPanel
    ChopPanel chopPanel
    +
    The ChopPanel, displayed on the left.
  • stitchPanel
    StitchPanel stitchPanel
    +
    The StitchPanel, displayed on the right.
  • @@ -189,20 +192,24 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));

    Serialized Fields

    • -
      compressOptionPanel
      -
      CompressRow compressOptionPanel
      +
      compressRow
      +
      CompressRow compressRow
      +
      The Row to enable/disable the compression functionality.
    • -
      createJobButtonPanel
      -
      CreateJobButtonRow createJobButtonPanel
      +
      createJobButtonRow
      +
      CreateJobButtonRow createJobButtonRow
      +
      The Row containing the button to create the ChopJobs.
    • -
      cryptOptionPanel
      -
      CryptRow cryptOptionPanel
      +
      cryptRow
      +
      CryptRow cryptRow
      +
      The Row to enable/disable the encryption functionality.
    • -
      splitOptionPanel
      -
      SplitRow splitOptionPanel
      +
      splitRow
      +
      SplitRow splitRow
      +
      The Row to enable/disable the file split functionality.
    @@ -223,10 +230,12 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
  • fileSelectPanel
    FileSelectRow fileSelectPanel
    +
    The second row, containing the file selector.
  • titlePanel
    TitleRow titlePanel
    +
    The first row, containing the name of the panel ("Chop" or "Stitch")
  • @@ -247,10 +256,12 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
  • deleteButton
    javax.swing.JButton deleteButton
    +
    The Delete selected jobs button.
  • startButton
    javax.swing.JButton startButton
    +
    The Start incomplete jobs button.
  • @@ -271,18 +282,22 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
  • jobs
    java.util.ArrayList<Job> jobs
    +
    A reference to the ArrayList of Jobs that should be displayed.
  • table
    javax.swing.JTable table
    +
    The jobs table.
  • tableModel
    JobsTablePanel.JobsTableModel tableModel
    +
    The TableModel instance for the Table.
  • tableScrollPane
    javax.swing.JScrollPane tableScrollPane
    +
    The JScrollPane wrapping the jobs Table.
  • @@ -308,12 +323,14 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));

    Serialized Fields

    diff --git a/docs/type-search-index.js b/docs/type-search-index.js index 7dfc415..50c8dc5 100644 --- a/docs/type-search-index.js +++ b/docs/type-search-index.js @@ -1 +1 @@ -typeSearchIndex = [{"l":"All Classes","url":"allclasses-index.html"},{"p":"eu.steffo.cleaver.gui.panels","l":"ChopAndStitchPanel"},{"p":"eu.steffo.cleaver.logic","l":"ChopJob"},{"p":"eu.steffo.cleaver.gui.panels","l":"ChopPanel"},{"p":"eu.steffo.cleaver.errors","l":"ChpFileError"},{"p":"eu.steffo.cleaver.gui","l":"CleaverFrame"},{"p":"eu.steffo.cleaver.logic.compress","l":"CompressConfig"},{"p":"eu.steffo.cleaver.gui.rows.option","l":"CompressRow"},{"p":"eu.steffo.cleaver.gui.rows","l":"CreateJobButtonRow"},{"p":"eu.steffo.cleaver.gui.panels","l":"CreateJobPanel"},{"p":"eu.steffo.cleaver.logic.crypt","l":"CryptConfig"},{"p":"eu.steffo.cleaver.gui.rows.option","l":"CryptRow"},{"p":"eu.steffo.cleaver.logic.progress","l":"ErrorProgress"},{"p":"eu.steffo.cleaver.gui.rows","l":"FileSelectRow"},{"p":"eu.steffo.cleaver.logic.progress","l":"FinishedProgress"},{"p":"eu.steffo.cleaver.logic","l":"Job"},{"p":"eu.steffo.cleaver.gui.panels","l":"JobsButtonsPanel"},{"p":"eu.steffo.cleaver.gui.panels","l":"JobsTablePanel.JobsTableModel"},{"p":"eu.steffo.cleaver.gui.panels","l":"JobsTablePanel"},{"p":"eu.steffo.cleaver.gui.rows.option","l":"KeyRow"},{"p":"eu.steffo.cleaver","l":"Main"},{"p":"eu.steffo.cleaver.logic.progress","l":"NotStartedProgress"},{"p":"eu.steffo.cleaver.gui.rows.option","l":"OptionRow"},{"p":"eu.steffo.cleaver.errors","l":"ProgrammingError"},{"p":"eu.steffo.cleaver.logic.progress","l":"Progress"},{"p":"eu.steffo.cleaver.gui.rows","l":"Row"},{"p":"eu.steffo.cleaver.logic.split","l":"SplitByPartsConfig"},{"p":"eu.steffo.cleaver.logic.split","l":"SplitBySizeConfig"},{"p":"eu.steffo.cleaver.logic.split","l":"SplitConfig"},{"p":"eu.steffo.cleaver.logic.split","l":"SplitFileOutputStream"},{"p":"eu.steffo.cleaver.gui.rows.option","l":"SplitRow"},{"p":"eu.steffo.cleaver.logic","l":"StitchJob"},{"p":"eu.steffo.cleaver.gui.panels","l":"StitchPanel"},{"p":"eu.steffo.cleaver","l":"Test"},{"p":"eu.steffo.cleaver.gui.rows","l":"TitleRow"},{"p":"eu.steffo.cleaver.logic.progress","l":"WorkingProgress"}] \ No newline at end of file +typeSearchIndex = [{"l":"All Classes","url":"allclasses-index.html"},{"p":"eu.steffo.cleaver.gui.panels","l":"ChopAndStitchPanel"},{"p":"eu.steffo.cleaver.logic","l":"ChopJob"},{"p":"eu.steffo.cleaver.gui.panels","l":"ChopPanel"},{"p":"eu.steffo.cleaver.errors","l":"ChpFileError"},{"p":"eu.steffo.cleaver.gui","l":"CleaverFrame"},{"p":"eu.steffo.cleaver.logic.compress","l":"CompressConfig"},{"p":"eu.steffo.cleaver.gui.rows.option","l":"CompressRow"},{"p":"eu.steffo.cleaver.gui.rows","l":"CreateJobButtonRow"},{"p":"eu.steffo.cleaver.gui.panels","l":"CreateJobPanel"},{"p":"eu.steffo.cleaver.logic.crypt","l":"CryptConfig"},{"p":"eu.steffo.cleaver.logic.crypt","l":"CryptInputStream"},{"p":"eu.steffo.cleaver.logic.crypt","l":"CryptOutputStream"},{"p":"eu.steffo.cleaver.gui.rows.option","l":"CryptRow"},{"p":"eu.steffo.cleaver.logic.progress","l":"ErrorProgress"},{"p":"eu.steffo.cleaver.gui.rows","l":"FileSelectRow"},{"p":"eu.steffo.cleaver.logic.progress","l":"FinishedProgress"},{"p":"eu.steffo.cleaver.logic","l":"Job"},{"p":"eu.steffo.cleaver.gui.panels","l":"JobsButtonsPanel"},{"p":"eu.steffo.cleaver.gui.panels","l":"JobsTablePanel.JobsTableModel"},{"p":"eu.steffo.cleaver.gui.panels","l":"JobsTablePanel"},{"p":"eu.steffo.cleaver.gui.rows.option","l":"KeyRow"},{"p":"eu.steffo.cleaver","l":"Main"},{"p":"eu.steffo.cleaver.logic.progress","l":"NotStartedProgress"},{"p":"eu.steffo.cleaver.gui.rows.option","l":"OptionRow"},{"p":"eu.steffo.cleaver.errors","l":"ProgrammingError"},{"p":"eu.steffo.cleaver.logic.progress","l":"Progress"},{"p":"eu.steffo.cleaver.gui.rows","l":"Row"},{"p":"eu.steffo.cleaver.logic.split","l":"SplitByPartsConfig"},{"p":"eu.steffo.cleaver.logic.split","l":"SplitBySizeConfig"},{"p":"eu.steffo.cleaver.logic.split","l":"SplitConfig"},{"p":"eu.steffo.cleaver.logic.split","l":"SplitFileInputStream"},{"p":"eu.steffo.cleaver.logic.split","l":"SplitFileOutputStream"},{"p":"eu.steffo.cleaver.gui.rows.option","l":"SplitRow"},{"p":"eu.steffo.cleaver.logic","l":"StitchJob"},{"p":"eu.steffo.cleaver.gui.panels","l":"StitchPanel"},{"p":"eu.steffo.cleaver","l":"Test"},{"p":"eu.steffo.cleaver.gui.rows","l":"TitleRow"},{"p":"eu.steffo.cleaver.logic.progress","l":"WorkingProgress"}] \ No newline at end of file diff --git a/eu.steffo.cleaver.iml b/eu.steffo.cleaver.iml index 3d2ec8b..5770e2e 100644 --- a/eu.steffo.cleaver.iml +++ b/eu.steffo.cleaver.iml @@ -4,6 +4,7 @@ + diff --git a/resources/style.css b/resources/style.css new file mode 100644 index 0000000..5a38e6d --- /dev/null +++ b/resources/style.css @@ -0,0 +1,36 @@ +.topNav, .bottomNav { + background-color: #440000 !important; +} + +.tableTab { + background-color: #440000 !important; +} + +.topNav li, .bottomNav li { + color: dimgray !important; +} + +.topNav a, .bottomNav a { + color: white !important; +} + +.navBarCell1Rev, .activeTableTab { + color: black !important; +} + +.subNav, thead tr th, body.class-declaration .summary h3, body.class-declaration .details h3, body.class-declaration .summary .inheritedList h2 { + background-color: #e9dede !important; + border: 0; +} + +.title, a { + color: #440000 !important; +} + +a:hover, a:active { + color: #F8981D !important; +} + +body, .overviewSummary caption, .memberSummary caption, .typeSummary caption, .useSummary caption, .constantsSummary caption, .deprecatedSummary caption, .requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption { + color: black; +} \ No newline at end of file diff --git a/src/eu/steffo/cleaver/gui/CleaverFrame.java b/src/eu/steffo/cleaver/gui/CleaverFrame.java index c7b0986..144091b 100644 --- a/src/eu/steffo/cleaver/gui/CleaverFrame.java +++ b/src/eu/steffo/cleaver/gui/CleaverFrame.java @@ -61,6 +61,7 @@ public class CleaverFrame extends JFrame { this.jobs = jobs; this.setTitle("Cleaver File Splitter"); + this.setResizable(false); Container cp = getContentPane(); @@ -71,14 +72,14 @@ public class CleaverFrame extends JFrame { ActionListener chopListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - chopStitchPanel.createAndAddChopJobs(jobs, jobsTablePanel::updateTableChanged); + chopStitchPanel.createAndAddChopJobs(jobs, jobsTablePanel::updateTable); } }; ActionListener stitchListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - chopStitchPanel.createAndAddStitchJobs(jobs, jobsTablePanel::updateTableChanged); + chopStitchPanel.createAndAddStitchJobs(jobs, jobsTablePanel::updateTable); } }; @@ -100,7 +101,7 @@ public class CleaverFrame extends JFrame { for(int n = removedIndexes.length - 1; n >= 0; n--) { jobs.remove(removedIndexes[n]); } - jobsTablePanel.updateTableChanged(); + jobsTablePanel.updateTable(); } }; diff --git a/src/eu/steffo/cleaver/gui/panels/ChopAndStitchPanel.java b/src/eu/steffo/cleaver/gui/panels/ChopAndStitchPanel.java index 935c098..5ee259d 100644 --- a/src/eu/steffo/cleaver/gui/panels/ChopAndStitchPanel.java +++ b/src/eu/steffo/cleaver/gui/panels/ChopAndStitchPanel.java @@ -6,10 +6,25 @@ import javax.swing.*; import java.awt.event.ActionListener; import java.util.ArrayList; +/** + * This panel displays a {@link ChopPanel} and a {@link StitchPanel} horizontally side-by-side. + */ public class ChopAndStitchPanel extends JPanel { + /** + * The {@link ChopPanel}, displayed on the left. + */ protected final ChopPanel chopPanel; + + /** + * The {@link StitchPanel}, displayed on the right. + */ protected final StitchPanel stitchPanel; + /** + * Construct a ChopAndStitchPanel by instantiating and adding a {@link ChopPanel} and a {@link StitchPanel} to it. + * @param onCreateChopJobClick The {@link ActionListener} that will be bound to the {@link eu.steffo.cleaver.gui.rows.CreateJobButtonRow CreateJobButton} of the {@link ChopPanel}. + * @param onCreateStitchJobClick The {@link ActionListener} that will be bound to the {@link eu.steffo.cleaver.gui.rows.CreateJobButtonRow CreateJobButton} of the {@link StitchPanel}. + */ public ChopAndStitchPanel(ActionListener onCreateChopJobClick, ActionListener onCreateStitchJobClick) { super(); @@ -28,11 +43,27 @@ public class ChopAndStitchPanel extends JPanel { this.add(Box.createHorizontalStrut(4)); } - public void createAndAddChopJobs(ArrayList jobs, Runnable updateTable) { - chopPanel.createAndAddJobs(jobs, updateTable); + /** + * Propagate downwards the click of the Create Jobs button on the {@link #chopPanel}. + * @param jobs The {@link ArrayList} of jobs that should be manipulated. + * @param onProgressChange The function that should be invoked when the {@link Job} {@link eu.steffo.cleaver.logic.progress.Progress Progress} changes. + * @see ChopPanel#createAndAddJobs(ArrayList, Runnable) + * @see eu.steffo.cleaver.logic.ChopJob + * @see eu.steffo.cleaver.gui.CleaverFrame + */ + public void createAndAddChopJobs(ArrayList jobs, Runnable onProgressChange) { + chopPanel.createAndAddJobs(jobs, onProgressChange); } - public void createAndAddStitchJobs(ArrayList jobs, Runnable updateTable) { - stitchPanel.createAndAddJobs(jobs, updateTable); + /** + * Propagate downwards the click of the Create Jobs button on the {@link #stitchPanel}. + * @param jobs The {@link ArrayList} of jobs that should be manipulated. + * @param onProgressChange The function that should be invoked when the {@link Job} {@link eu.steffo.cleaver.logic.progress.Progress Progress} changes. + * @see StitchPanel#createAndAddJobs(ArrayList, Runnable) + * @see eu.steffo.cleaver.logic.ChopJob + * @see eu.steffo.cleaver.gui.CleaverFrame + */ + public void createAndAddStitchJobs(ArrayList jobs, Runnable onProgressChange) { + stitchPanel.createAndAddJobs(jobs, onProgressChange); } } diff --git a/src/eu/steffo/cleaver/gui/panels/ChopPanel.java b/src/eu/steffo/cleaver/gui/panels/ChopPanel.java index b1d6341..7fbfd71 100644 --- a/src/eu/steffo/cleaver/gui/panels/ChopPanel.java +++ b/src/eu/steffo/cleaver/gui/panels/ChopPanel.java @@ -13,47 +13,73 @@ import eu.steffo.cleaver.logic.split.SplitConfig; import javax.swing.*; import java.awt.event.ActionListener; import java.io.File; -import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; +/** + * The {@link CreateJobPanel} allowing the creation of {@link ChopJob ChopJobs}. + */ public class ChopPanel extends CreateJobPanel { - protected final SplitRow splitOptionPanel; - protected final CryptRow cryptOptionPanel; - protected final CompressRow compressOptionPanel; - protected final CreateJobButtonRow createJobButtonPanel; + /** + * The {@link eu.steffo.cleaver.gui.rows.Row Row} to enable/disable the file split functionality. + */ + protected final SplitRow splitRow; + + /** + * The {@link eu.steffo.cleaver.gui.rows.Row Row} to enable/disable the encryption functionality. + */ + protected final CryptRow cryptRow; + + /** + * The {@link eu.steffo.cleaver.gui.rows.Row Row} to enable/disable the compression functionality. + */ + protected final CompressRow compressRow; + + /** + * The {@link eu.steffo.cleaver.gui.rows.Row Row} containing the button to create the {@link ChopJob ChopJobs}. + */ + protected final CreateJobButtonRow createJobButtonRow; @Override protected String getPanelText() { return "Chop"; } + /** + * Construct a ChopPanel. + * @param onCreateJobClick The {@link ActionListener} that will be added to the button in the {@link #createJobButtonRow}. + */ public ChopPanel(ActionListener onCreateJobClick) { - super(onCreateJobClick); + super(); this.add(Box.createVerticalStrut(8)); - splitOptionPanel = new SplitRow(); - this.add(splitOptionPanel); + splitRow = new SplitRow(); + this.add(splitRow); this.add(Box.createVerticalStrut(8)); - cryptOptionPanel = new CryptRow(); - this.add(cryptOptionPanel); + cryptRow = new CryptRow(); + this.add(cryptRow); this.add(Box.createVerticalStrut(8)); - compressOptionPanel = new CompressRow(); - this.add(compressOptionPanel); + compressRow = new CompressRow(); + this.add(compressRow); this.add(Box.createVerticalStrut(8)); - createJobButtonPanel = new CreateJobButtonRow(onCreateJobClick); - this.add(createJobButtonPanel); + createJobButtonRow = new CreateJobButtonRow(onCreateJobClick); + this.add(createJobButtonRow); this.add(Box.createVerticalStrut(8)); } - public void createAndAddJobs(ArrayList jobs, Runnable updateTable) { + /** + * Add to the {@link ArrayList jobs ArrayList} the {@link ChopJob ChopJobs} for the current settings. + * @param jobs The {@link ArrayList} the {@link ChopJob ChopJobs} should be added to. + * @param onProgressChange The function that should be invoked when the {@link Job} {@link eu.steffo.cleaver.logic.progress.Progress Progress} changes. + */ + public void createAndAddJobs(ArrayList jobs, Runnable onProgressChange) { if(fileSelectPanel.getSelectedFiles().length == 0) { JOptionPane.showMessageDialog(null, "No files selected.", "Error", JOptionPane.ERROR_MESSAGE); } @@ -61,17 +87,17 @@ public class ChopPanel extends CreateJobPanel { SplitConfig sc; try { - sc = splitOptionPanel.getSplitConfig(); + sc = splitRow.getSplitConfig(); } catch (NumberFormatException exc) { JOptionPane.showMessageDialog(null, "Invalid value in the Split fields.", "Error", JOptionPane.ERROR_MESSAGE); return; } - CryptConfig cc = cryptOptionPanel.getCryptConfig(); + CryptConfig cc = cryptRow.getCryptConfig(); - CompressConfig zc = compressOptionPanel.getCompressConfig(); + CompressConfig zc = compressRow.getCompressConfig(); - Job job = new ChopJob(file, updateTable, sc, cc, zc); + Job job = new ChopJob(file, sc, cc, zc, onProgressChange); jobs.add(job); } diff --git a/src/eu/steffo/cleaver/gui/panels/CreateJobPanel.java b/src/eu/steffo/cleaver/gui/panels/CreateJobPanel.java index 5806e4e..cf40a1c 100644 --- a/src/eu/steffo/cleaver/gui/panels/CreateJobPanel.java +++ b/src/eu/steffo/cleaver/gui/panels/CreateJobPanel.java @@ -2,18 +2,33 @@ package eu.steffo.cleaver.gui.panels; import eu.steffo.cleaver.gui.rows.FileSelectRow; import eu.steffo.cleaver.gui.rows.TitleRow; -import eu.steffo.cleaver.logic.Job; import javax.swing.*; -import java.awt.event.ActionListener; +/** + * The base class for the two job creation panels ({@link ChopPanel} and {@link StitchPanel}). + * It uses a vertical layout; therefore, {@link eu.steffo.cleaver.gui.rows.Row Rows} are added to it. + */ public abstract class CreateJobPanel extends JPanel { + /** + * The first row, containing the name of the panel ("Chop" or "Stitch") + */ protected final TitleRow titlePanel; + + /** + * The second row, containing the file selector. + */ protected final FileSelectRow fileSelectPanel; + /** + * @return The {@link String} that should be displayed as title of the panel. + */ protected abstract String getPanelText(); - public CreateJobPanel(ActionListener onCreateJobClick) { + /** + * Construct the job panel by setting its layout, adding a border, the {@link TitleRow} and the {@link FileSelectRow}. + */ + public CreateJobPanel() { super(); this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); diff --git a/src/eu/steffo/cleaver/gui/panels/JobsButtonsPanel.java b/src/eu/steffo/cleaver/gui/panels/JobsButtonsPanel.java index 4d4e1b9..e01c094 100644 --- a/src/eu/steffo/cleaver/gui/panels/JobsButtonsPanel.java +++ b/src/eu/steffo/cleaver/gui/panels/JobsButtonsPanel.java @@ -3,11 +3,28 @@ package eu.steffo.cleaver.gui.panels; import javax.swing.*; import java.awt.event.ActionListener; +/** + * A panel that holds the buttons to perform actions on jobs. + * Currently, the actions are Delete selected jobs and Start incomplete jobs. + * The buttons are displayed horizontally side-by-side. + */ public class JobsButtonsPanel extends JPanel { + /** + * The Delete selected jobs button. + */ protected final JButton deleteButton; + + /** + * The Start incomplete jobs button. + */ protected final JButton startButton; + /** + * Construct a JobsButtonPanel. + * @param onDeleteJobsButtonClick The {@link ActionListener} that should be added to the Delete {@link JButton button}. + * @param onStartJobsButtonClick The {@link ActionListener} that should be added to the Start {@link JButton button}. + */ public JobsButtonsPanel(ActionListener onDeleteJobsButtonClick, ActionListener onStartJobsButtonClick) { super(); @@ -19,7 +36,7 @@ public class JobsButtonsPanel extends JPanel { this.add(Box.createHorizontalStrut(8)); - startButton = new JButton("Start jobs"); + startButton = new JButton("Start incomplete jobs"); startButton.addActionListener(onStartJobsButtonClick); this.add(startButton); diff --git a/src/eu/steffo/cleaver/gui/panels/JobsTablePanel.java b/src/eu/steffo/cleaver/gui/panels/JobsTablePanel.java index 9311f25..04897bd 100644 --- a/src/eu/steffo/cleaver/gui/panels/JobsTablePanel.java +++ b/src/eu/steffo/cleaver/gui/panels/JobsTablePanel.java @@ -10,12 +10,35 @@ import javax.swing.table.AbstractTableModel; import java.awt.*; import java.util.ArrayList; +/** + * The {@link JPanel Panel} containing the jobs {@link JTable Table}. + */ public class JobsTablePanel extends JPanel { + /** + * The {@link JScrollPane} wrapping the jobs {@link JTable Table}. + */ protected final JScrollPane tableScrollPane; + + /** + * The {@link JobsTableModel TableModel} instance for the {@link JTable Table}. + */ protected final JobsTableModel tableModel; + + /** + * The jobs table. + */ protected final JTable table; + + /** + * A reference to the {@link ArrayList} of {@link Job Jobs} that should be displayed. + */ protected final ArrayList jobs; + /** + * The {@link javax.swing.table.TableModel} of the jobs table. + * + * It is an inner class. + */ public class JobsTableModel extends AbstractTableModel { @Override public int getRowCount() { @@ -72,13 +95,15 @@ public class JobsTablePanel extends JPanel { return c.toString(); case 5: return job.getProgress().toString(); - } return "Unknown"; } } - + /** + * Construct a JobsTablePanel. + * @param jobs A reference to the {@link ArrayList} of {@link Job Jobs} that should be displayed in the table. + */ public JobsTablePanel(ArrayList jobs) { super(); @@ -96,11 +121,17 @@ public class JobsTablePanel extends JPanel { this.add(Box.createHorizontalStrut(4)); } + /** + * @return The array of the indexes of the jobs that are currently selected in the table. + */ public int[] getSelectedJobsIndexes() { return table.getSelectedRows(); } - public void updateTableChanged() { + /** + * Refresh the table, updating all data inside it. + */ + public void updateTable() { tableModel.fireTableDataChanged(); } } diff --git a/src/eu/steffo/cleaver/gui/panels/StitchPanel.java b/src/eu/steffo/cleaver/gui/panels/StitchPanel.java index ab52d94..5aec7a2 100644 --- a/src/eu/steffo/cleaver/gui/panels/StitchPanel.java +++ b/src/eu/steffo/cleaver/gui/panels/StitchPanel.java @@ -13,42 +13,59 @@ import java.awt.event.ActionListener; import java.io.File; import java.util.ArrayList; +/** + * The {@link CreateJobPanel} allowing the creation of {@link StitchJob StitchJobs}. + */ public class StitchPanel extends CreateJobPanel { - protected final CreateJobButtonRow createJobButtonPanel; + /** + * The {@link eu.steffo.cleaver.gui.rows.Row Row} to select the encryption key. + */ protected final KeyRow keyOptionRow; + /** + * The {@link eu.steffo.cleaver.gui.rows.Row Row} containing the button to create the {@link StitchJob StitchJobs}. + */ + protected final CreateJobButtonRow createJobButtonRow; + @Override protected String getPanelText() { return "Stitch"; } + /** + * Construct a StitchPanel. + * @param onCreateJobClick The {@link ActionListener} that will be added to the button in the {@link #createJobButtonRow}. + */ public StitchPanel(ActionListener onCreateJobClick) { - super(onCreateJobClick); + super(); - this.add(Box.createVerticalStrut(8)); - this.add(Box.createVerticalStrut(24)); - this.add(Box.createVerticalStrut(8)); + //Leave the empty space for the split row + this.add(Box.createVerticalStrut(40)); keyOptionRow = new KeyRow(); this.add(keyOptionRow); - this.add(Box.createVerticalStrut(8)); - this.add(Box.createVerticalStrut(24)); - this.add(Box.createVerticalStrut(8)); + //Leave the empty space for the compress row + this.add(Box.createVerticalStrut(40)); - createJobButtonPanel = new CreateJobButtonRow(onCreateJobClick); - this.add(createJobButtonPanel); + createJobButtonRow = new CreateJobButtonRow(onCreateJobClick); + this.add(createJobButtonRow); this.add(Box.createVerticalStrut(8)); fileSelectPanel.setFileFilter(new FileNameExtensionFilter("Cleaver Metadata (*.chp)", "chp")); } - public void createAndAddJobs(ArrayList jobs, Runnable updateTable) { + /** + * Add to the {@link ArrayList jobs ArrayList} the {@link StitchJob StitchJobs} for the current settings. + * @param jobs The {@link ArrayList} the {@link StitchJob StitchJobs} should be added to. + * @param onProgressChange The function that should be invoked when the {@link Job} {@link eu.steffo.cleaver.logic.progress.Progress Progress} changes. + */ + public void createAndAddJobs(ArrayList jobs, Runnable onProgressChange) { File[] files = fileSelectPanel.getSelectedFiles(); for(File file : files) { try { - Job job = new StitchJob(file, updateTable, keyOptionRow.getKey()); + Job job = new StitchJob(file, keyOptionRow.getKey(), onProgressChange); jobs.add(job); } catch (ChpFileError ex) { JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); diff --git a/src/eu/steffo/cleaver/gui/panels/package-info.java b/src/eu/steffo/cleaver/gui/panels/package-info.java new file mode 100644 index 0000000..6658581 --- /dev/null +++ b/src/eu/steffo/cleaver/gui/panels/package-info.java @@ -0,0 +1,4 @@ +/** + * A package containing most {@link javax.swing.JPanel JPanels} used by the Cleaver GUI. + */ +package eu.steffo.cleaver.gui.panels; \ No newline at end of file diff --git a/src/eu/steffo/cleaver/logic/ChopJob.java b/src/eu/steffo/cleaver/logic/ChopJob.java index 59f3a2f..3070eab 100644 --- a/src/eu/steffo/cleaver/logic/ChopJob.java +++ b/src/eu/steffo/cleaver/logic/ChopJob.java @@ -4,6 +4,7 @@ import eu.steffo.cleaver.errors.ChpFileError; import eu.steffo.cleaver.errors.ProgrammingError; import eu.steffo.cleaver.logic.compress.CompressConfig; import eu.steffo.cleaver.logic.crypt.CryptConfig; +import eu.steffo.cleaver.logic.crypt.CryptOutputStream; import eu.steffo.cleaver.logic.progress.ErrorProgress; import eu.steffo.cleaver.logic.progress.FinishedProgress; import eu.steffo.cleaver.logic.progress.WorkingProgress; @@ -13,7 +14,6 @@ import eu.steffo.cleaver.logic.split.SplitConfig; import eu.steffo.cleaver.logic.split.SplitFileOutputStream; import org.w3c.dom.Document; import org.w3c.dom.Element; -import org.xml.sax.SAXException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -25,24 +25,54 @@ import javax.xml.transform.stream.StreamResult; import java.io.*; import java.util.zip.DeflaterOutputStream; +/** + * A {@link Job} that converts regular files into chopped (*.chp + *.cXX) files. + */ public class ChopJob extends Job { - public ChopJob(File file, SplitConfig splitConfig, CryptConfig cryptConfig, CompressConfig compressConfig) { - this(file, null, splitConfig, cryptConfig, compressConfig); - } + private final File file; + private final SplitConfig splitConfig; + private final CryptConfig cryptConfig; + private final CompressConfig compressConfig; - public ChopJob(File file, Runnable swingCallLaterOnProgressChanges, SplitConfig splitConfig, CryptConfig cryptConfig, CompressConfig compressConfig) { - super(file, swingCallLaterOnProgressChanges); + public ChopJob(File file, SplitConfig splitConfig, CryptConfig cryptConfig, CompressConfig compressConfig, Runnable onProgressChange) { + super(onProgressChange); + this.file = file; this.splitConfig = splitConfig; this.cryptConfig = cryptConfig; this.compressConfig = compressConfig; } + public ChopJob(File file, SplitConfig splitConfig, CryptConfig cryptConfig, CompressConfig compressConfig) { + this(file, splitConfig, cryptConfig, compressConfig, null); + } + + @Override public String getType() { return "Chop"; } + @Override + public File getFile() { + return file; + } + + @Override + public SplitConfig getSplitConfig() { + return splitConfig; + } + + @Override + public CryptConfig getCryptConfig() { + return cryptConfig; + } + + @Override + public CompressConfig getCompressConfig() { + return compressConfig; + } + @Override public void run() { try { @@ -53,7 +83,7 @@ public class ChopJob extends Job { partSize = ((SplitBySizeConfig)splitConfig).getSize(); } else if(splitConfig instanceof SplitByPartsConfig) { - partSize = file.length() / ((SplitByPartsConfig)splitConfig).getParts(); + partSize = (long)Math.ceil((double)file.length() / (double)(((SplitByPartsConfig)splitConfig).getParts())); } else { partSize = file.length(); @@ -65,7 +95,7 @@ public class ChopJob extends Job { } if(cryptConfig != null) { - //TODO + outputStream = new CryptOutputStream(outputStream); } //Create the .chp file @@ -80,6 +110,10 @@ public class ChopJob extends Job { Element root = doc.createElement("Cleaver"); doc.appendChild(root); + Element original = doc.createElement("Original"); + original.setTextContent(file.getName()); + root.appendChild(original); + if(splitConfig != null) { root.appendChild(splitConfig.toElement(doc)); } @@ -118,16 +152,4 @@ public class ChopJob extends Job { this.setProgress(new ErrorProgress(e)); } } - - public SplitConfig getSplitConfig() { - return splitConfig; - } - - public CryptConfig getCryptConfig() { - return cryptConfig; - } - - public CompressConfig getCompressConfig() { - return compressConfig; - } } diff --git a/src/eu/steffo/cleaver/logic/Job.java b/src/eu/steffo/cleaver/logic/Job.java index 354864c..3cb4c81 100644 --- a/src/eu/steffo/cleaver/logic/Job.java +++ b/src/eu/steffo/cleaver/logic/Job.java @@ -9,55 +9,91 @@ import eu.steffo.cleaver.logic.progress.NotStartedProgress; import eu.steffo.cleaver.logic.progress.Progress; import eu.steffo.cleaver.logic.split.SplitConfig; +/** + * A {@link Thread} that allows access to the basic . + */ public abstract class Job extends Thread { - protected File file; private Progress progress; - protected Runnable swingCallLaterOnProgressChanges = null; + private Runnable onProgressChange = null; - protected SplitConfig splitConfig = null; - protected CryptConfig cryptConfig = null; - protected CompressConfig compressConfig = null; - - public Job(File file) { - this.file = file; + /** + * Construct a Job, setting its progress to {@link NotStartedProgress Not started}. + */ + public Job() { this.progress = new NotStartedProgress(); } - public Job(File file, Runnable swingCallLaterOnProgressChanges) { - this(file); - this.swingCallLaterOnProgressChanges = swingCallLaterOnProgressChanges; - if(swingCallLaterOnProgressChanges != null) { - SwingUtilities.invokeLater(swingCallLaterOnProgressChanges); + /** + * Construct a Job, then add to it a {@link Runnable} that will be invoked through {@link SwingUtilities#invokeLater(Runnable) invokeLater} on progress + * changes. + * @param onProgressChange The {@link Runnable} that should be invoked when {@link #setProgress(Progress)} is called. + * @see Job() + */ + public Job(Runnable onProgressChange) { + this(); + this.onProgressChange = onProgressChange; + if(onProgressChange != null) { + SwingUtilities.invokeLater(onProgressChange); } } + /** + * @return The name of the job type, such as "Chop" for a {@link ChopJob}. + */ public abstract String getType(); - public File getFile() { - return file; - } + /** + * @return The file path the job should act on. + */ + public abstract File getFile(); + /** + * @return The current progress of the job. + * @see eu.steffo.cleaver.logic.progress.NotStartedProgress + * @see eu.steffo.cleaver.logic.progress.WorkingProgress + * @see eu.steffo.cleaver.logic.progress.FinishedProgress + * @see eu.steffo.cleaver.logic.progress.ErrorProgress + */ public Progress getProgress() { return progress; } + /** + * @return The {@link SplitConfig} of the job. If {@literal null}, the job shouldn't handle file splitting/merging. + */ + public abstract SplitConfig getSplitConfig(); + + /** + * @return The {@link CryptConfig} of the job. If {@literal null}, the job shouldn't handle file encryption/decryption. + */ + public abstract CryptConfig getCryptConfig(); + + /** + * @return The {@link CompressConfig} of the job. If {@literal null}, the job shouldn't handle file compression/decompression. + */ + public abstract CompressConfig getCompressConfig(); + + /** + * Set the progress of the job to a different value. + * + * If {@link #onProgressChange} is set, schedule its invocation after the set, allowing for example the updating of a + * {@link javax.swing.table.TableModel TableModel} after the progress change. + * + * @param progress The value {@link #progress} should be set to. + */ protected void setProgress(Progress progress) { this.progress = progress; - if(swingCallLaterOnProgressChanges != null) { - SwingUtilities.invokeLater(swingCallLaterOnProgressChanges); + if(onProgressChange != null) { + SwingUtilities.invokeLater(onProgressChange); } } - public SplitConfig getSplitConfig() { - return splitConfig; - } - - public CryptConfig getCryptConfig() { - return cryptConfig; - } - - public CompressConfig getCompressConfig() { - return compressConfig; - } + /** + * The function that is run on a different thread when {@link Thread#start()} is called. + * + * Child classes should override {@link Thread#run()}. + */ + @Override + public abstract void run(); } diff --git a/src/eu/steffo/cleaver/logic/StitchJob.java b/src/eu/steffo/cleaver/logic/StitchJob.java index d735562..42f70cc 100644 --- a/src/eu/steffo/cleaver/logic/StitchJob.java +++ b/src/eu/steffo/cleaver/logic/StitchJob.java @@ -4,7 +4,8 @@ import eu.steffo.cleaver.errors.ChpFileError; import eu.steffo.cleaver.errors.ProgrammingError; import eu.steffo.cleaver.logic.compress.CompressConfig; import eu.steffo.cleaver.logic.crypt.CryptConfig; -import eu.steffo.cleaver.logic.progress.FinishedProgress; +import eu.steffo.cleaver.logic.progress.ErrorProgress; +import eu.steffo.cleaver.logic.progress.Progress; import eu.steffo.cleaver.logic.split.SplitByPartsConfig; import eu.steffo.cleaver.logic.split.SplitBySizeConfig; import eu.steffo.cleaver.logic.split.SplitConfig; @@ -18,20 +19,77 @@ import org.xml.sax.SAXException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; +import java.io.*; +/** + * A {@link Job} that converts chopped (*.chp + *.cXX) files back into regular files. + */ public class StitchJob extends Job { + private File resultFile; + private SplitConfig splitConfig = null; + private CryptConfig cryptConfig = null; + private CompressConfig compressConfig = null; - public StitchJob(File file, String cryptKey) throws ChpFileError, ProgrammingError { - this(file, null, cryptKey); + /** + * Construct a StitchJob, specifying the *.chp file to import the settings from. + * @param file The *.chp file. + * @throws ChpFileError If there's an error while parsing the *.chp file. + * @throws ProgrammingError It shouldn't be thrown, but it isn't caught to allow its display in the GUI if it actually happens. + */ + public StitchJob(File file) throws ChpFileError, ProgrammingError { + this(file, null, null); } - public StitchJob(File file, Runnable updateTable, String cryptKey) throws ChpFileError, ProgrammingError { - super(file, updateTable); - parseChp(openChp(file), cryptKey); + /** + * Construct a StitchJob, specifying the *.chp file to import the settings from and an encryption key to use while decrypting the files. + * @param file The *.chp file. + * @param cryptKey The encryption key to use while decrypting the files. + * @throws ChpFileError If there's an error while parsing the *.chp file. + * @throws ProgrammingError It shouldn't be thrown, but it isn't caught to allow its display in the GUI if it actually happens. + * @see #StitchJob(File) + */ + public StitchJob(File file, String cryptKey) throws ChpFileError, ProgrammingError { + this(file, cryptKey, null); + } + + /** + * Construct a StitchJob, and additionally specify the {@link Runnable} that should be called on progress updates.. + * @param chpFile The *.chp file. + * @param cryptKey The encryption key to use while decrypting the files. + * @param updateTable The {@link Runnable} that should be invoked when {@link #setProgress(Progress)} is called. + * @throws ChpFileError If there's an error while parsing the *.chp file. + * @throws ProgrammingError It shouldn't be thrown, but it isn't caught to allow its display in the GUI if it actually happens. + * @see #StitchJob(File, String) + * @see Job#Job(Runnable) + */ + public StitchJob(File chpFile, String cryptKey, Runnable updateTable) throws ChpFileError, ProgrammingError { + super(updateTable); + parseChp(openChp(chpFile), cryptKey); + } + + @Override + public String getType() { + return "Stitch"; + } + + @Override + public File getFile() { + return resultFile; + } + + @Override + public SplitConfig getSplitConfig() { + return splitConfig; + } + + @Override + public CryptConfig getCryptConfig() { + return cryptConfig; + } + + @Override + public CompressConfig getCompressConfig() { + return compressConfig; } protected static Document openChp(File file) throws ChpFileError, ProgrammingError { @@ -53,17 +111,31 @@ public class StitchJob extends Job { return doc; } - protected final void parseChp(Document doc, String cryptKey) { + /** + * Read a {@link Document} and set {@link #splitConfig}, {@link #cryptConfig} and {@link #compressConfig} accordingly. + * @param doc The {@link Document} to be read. + * @param cryptKey The encryption key to use in the {@link CryptConfig}. + * @throws ChpFileError If there's an error while parsing the *.chp file. + */ + protected final void parseChp(Document doc, String cryptKey) throws ChpFileError { Element root = doc.getDocumentElement(); + NodeList originals = root.getElementsByTagName("Original"); NodeList splits = root.getElementsByTagName("Split"); NodeList crypts = root.getElementsByTagName("Crypt"); NodeList compresses = root.getElementsByTagName("Compress"); + Node originalNode = originals.item(0); Node splitNode = splits.item(0); Node cryptNode = crypts.item(0); Node compressNode = compresses.item(0); + if(originalNode == null) { + throw new ChpFileError("No original filename found ( tag)"); + } + Element original = (Element)originalNode; + resultFile = new File(original.getTextContent()); + if(splitNode != null) { Element split = (Element)splitNode; String splitMode = split.getAttribute("mode"); @@ -82,13 +154,8 @@ public class StitchJob extends Job { } } - @Override - public String getType() { - return "Stitch"; - } - @Override public void run() { - this.setProgress(new FinishedProgress()); + this.setProgress(new ErrorProgress(null)); } } diff --git a/src/eu/steffo/cleaver/logic/compress/CompressConfig.java b/src/eu/steffo/cleaver/logic/compress/CompressConfig.java index 6ce0649..313290e 100644 --- a/src/eu/steffo/cleaver/logic/compress/CompressConfig.java +++ b/src/eu/steffo/cleaver/logic/compress/CompressConfig.java @@ -3,12 +3,22 @@ package eu.steffo.cleaver.logic.compress; import org.w3c.dom.Document; import org.w3c.dom.Element; +/** + * A class containing the configuration for the compression step of a {@link eu.steffo.cleaver.logic.Job Job}. + */ public class CompressConfig { @Override public String toString() { - return "Yes"; + return "Yes (Deflate)"; } + /** + * Create a {@link Element} representing this CompressConfig (to be used in *.chp metadata files). + * @param doc The {@link Document} the {@link Element} should be created in. + * @return The created {@link Element}. + * @see eu.steffo.cleaver.logic.ChopJob + * @see eu.steffo.cleaver.logic.StitchJob + */ public Element toElement(Document doc) { return doc.createElement("Compress"); } diff --git a/src/eu/steffo/cleaver/logic/compress/package-info.java b/src/eu/steffo/cleaver/logic/compress/package-info.java new file mode 100644 index 0000000..277fc56 --- /dev/null +++ b/src/eu/steffo/cleaver/logic/compress/package-info.java @@ -0,0 +1,4 @@ +/** + * The package containing classes related to the (de)compression functionality. + */ +package eu.steffo.cleaver.logic.compress; \ No newline at end of file diff --git a/src/eu/steffo/cleaver/logic/crypt/CryptConfig.java b/src/eu/steffo/cleaver/logic/crypt/CryptConfig.java index 3bc6b12..3f7768f 100644 --- a/src/eu/steffo/cleaver/logic/crypt/CryptConfig.java +++ b/src/eu/steffo/cleaver/logic/crypt/CryptConfig.java @@ -3,13 +3,23 @@ package eu.steffo.cleaver.logic.crypt; import org.w3c.dom.Document; import org.w3c.dom.Element; +/** + * A class containing the configuration for the encryption/decryption step of a {@link eu.steffo.cleaver.logic.Job Job}. + */ public class CryptConfig { - protected String key; + protected final String key; + /** + * Construct a new CryptConfig with a specific encryption key. + * @param key The encryption key. + */ public CryptConfig(String key) { this.key = key; } + /** + * @return The encryption key. + */ public String getKey() { return key; } @@ -19,6 +29,13 @@ public class CryptConfig { return "••••••••"; } + /** + * Create a {@link Element} representing this CryptConfig (to be used in *.chp metadata files). + * @param doc The {@link Document} the {@link Element} should be created in. + * @return The created {@link Element}. + * @see eu.steffo.cleaver.logic.ChopJob + * @see eu.steffo.cleaver.logic.StitchJob + */ public Element toElement(Document doc) { return doc.createElement("Crypt"); } diff --git a/src/eu/steffo/cleaver/logic/crypt/CryptInputStream.java b/src/eu/steffo/cleaver/logic/crypt/CryptInputStream.java new file mode 100644 index 0000000..19f2f11 --- /dev/null +++ b/src/eu/steffo/cleaver/logic/crypt/CryptInputStream.java @@ -0,0 +1,12 @@ +package eu.steffo.cleaver.logic.crypt; + +import java.io.FilterInputStream; +import java.io.InputStream; + +public class CryptInputStream extends FilterInputStream { + protected CryptInputStream(InputStream in) { + super(in); + } + + //TODO: This doesn't do anything... yet. +} diff --git a/src/eu/steffo/cleaver/logic/crypt/CryptOutputStream.java b/src/eu/steffo/cleaver/logic/crypt/CryptOutputStream.java new file mode 100644 index 0000000..274358d --- /dev/null +++ b/src/eu/steffo/cleaver/logic/crypt/CryptOutputStream.java @@ -0,0 +1,12 @@ +package eu.steffo.cleaver.logic.crypt; + +import java.io.FilterOutputStream; +import java.io.OutputStream; + +public class CryptOutputStream extends FilterOutputStream { + public CryptOutputStream(OutputStream out) { + super(out); + } + + //TODO: This doesn't do anything... yet. +} diff --git a/src/eu/steffo/cleaver/logic/crypt/package-info.java b/src/eu/steffo/cleaver/logic/crypt/package-info.java new file mode 100644 index 0000000..6ab3f40 --- /dev/null +++ b/src/eu/steffo/cleaver/logic/crypt/package-info.java @@ -0,0 +1,4 @@ +/** + * The package containing classes related to the encryption/decryption functionality. + */ +package eu.steffo.cleaver.logic.crypt; \ No newline at end of file diff --git a/src/eu/steffo/cleaver/logic/split/SplitByPartsConfig.java b/src/eu/steffo/cleaver/logic/split/SplitByPartsConfig.java index b89e3d7..2bc15e6 100644 --- a/src/eu/steffo/cleaver/logic/split/SplitByPartsConfig.java +++ b/src/eu/steffo/cleaver/logic/split/SplitByPartsConfig.java @@ -5,12 +5,15 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; public class SplitByPartsConfig extends SplitConfig { - protected int parts; + private int parts; public SplitByPartsConfig(int parts) { this.parts = parts; } + /** + * @return The number of parts the file should be split in. + */ public int getParts() { return parts; } diff --git a/src/eu/steffo/cleaver/logic/split/SplitBySizeConfig.java b/src/eu/steffo/cleaver/logic/split/SplitBySizeConfig.java index 09c1113..8cf7606 100644 --- a/src/eu/steffo/cleaver/logic/split/SplitBySizeConfig.java +++ b/src/eu/steffo/cleaver/logic/split/SplitBySizeConfig.java @@ -6,12 +6,15 @@ import org.w3c.dom.Element; import org.w3c.dom.Text; public class SplitBySizeConfig extends SplitConfig { - protected long size; + private long size; public SplitBySizeConfig(long size) { this.size = size; } + /** + * @return The size in bytes the file parts should be. + */ public long getSize() { return size; } diff --git a/src/eu/steffo/cleaver/logic/split/SplitConfig.java b/src/eu/steffo/cleaver/logic/split/SplitConfig.java index 7b961b1..47259e5 100644 --- a/src/eu/steffo/cleaver/logic/split/SplitConfig.java +++ b/src/eu/steffo/cleaver/logic/split/SplitConfig.java @@ -3,6 +3,16 @@ package eu.steffo.cleaver.logic.split; import org.w3c.dom.Document; import org.w3c.dom.Element; +/** + * A class containing the configuration for the split/merge step of a {@link eu.steffo.cleaver.logic.Job Job}. + */ public abstract class SplitConfig { + /** + * Create a {@link Element} representing this SplitConfig (to be used in *.chp metadata files). + * @param doc The {@link Document} the {@link Element} should be created in. + * @return The created {@link Element}. + * @see eu.steffo.cleaver.logic.ChopJob + * @see eu.steffo.cleaver.logic.StitchJob + */ public abstract Element toElement(Document doc); } diff --git a/src/eu/steffo/cleaver/logic/split/SplitFileInputStream.java b/src/eu/steffo/cleaver/logic/split/SplitFileInputStream.java new file mode 100644 index 0000000..97a5583 --- /dev/null +++ b/src/eu/steffo/cleaver/logic/split/SplitFileInputStream.java @@ -0,0 +1,21 @@ +package eu.steffo.cleaver.logic.split; + +import java.io.IOException; +import java.io.InputStream; + +public class SplitFileInputStream extends InputStream { + protected String fileBaseName; + protected int partSize; + protected int currentFileCount; + + public SplitFileInputStream(String fileBaseName, int partSize) { + this.fileBaseName = fileBaseName; + this.partSize = partSize; + this.currentFileCount = 0; + } + + @Override + public int read() throws IOException { + throw new IOException("Not implemented yet"); + } +} diff --git a/src/eu/steffo/cleaver/logic/split/SplitFileOutputStream.java b/src/eu/steffo/cleaver/logic/split/SplitFileOutputStream.java index 31815f1..bd4fbe4 100644 --- a/src/eu/steffo/cleaver/logic/split/SplitFileOutputStream.java +++ b/src/eu/steffo/cleaver/logic/split/SplitFileOutputStream.java @@ -5,6 +5,8 @@ import java.io.IOException; import java.io.OutputStream; public class SplitFileOutputStream extends OutputStream { + //TODO: possibly use a BufferedOutputStream to improve performance? + protected String fileBaseName; protected FileOutputStream currentFileOutputStream; protected long currentByteCount; diff --git a/src/eu/steffo/cleaver/logic/split/package-info.java b/src/eu/steffo/cleaver/logic/split/package-info.java new file mode 100644 index 0000000..0d58b3c --- /dev/null +++ b/src/eu/steffo/cleaver/logic/split/package-info.java @@ -0,0 +1,4 @@ +/** + * The package containing classes related to the file splitting/merging functionality. + */ +package eu.steffo.cleaver.logic.split; \ No newline at end of file