This changes file handling from the ground up. Many changes to various classes and modules needed to be performed to decouple clustering from File saving. FileSet, FileMRU, Preferences, Clustering, all classes related to SaveTask() such as *FileGenerators, TreeViewFrame, TVController (for task delegation and menu bar reasons) were adapted.
removed author tag
removed more author tags
updated JavaDoc for SaveTask class
updated ClusterFileGenerator JavaDoc
deleted ReorderedDataModel, deleted code related to subDataModel; commented out saving behavior for clustering; moved ordering out of ClusterFileGenerator to ClusterDialogController; implemented first draft of method for updating the TVModel in TVController
first functioning in-memory update of TVModel; labels and trees still missing
added defaults to ClusteredAxisData to avoid NullPointers
implemented display of reordered labels; cluster IDs still absent
implemented reordered labels for in-memory loading of cluster data
in place update of reordered labels implemented
extracted code to update the model with cluster information into its own class
created special class for adding tree node data to a data model
disabled tree file writing; added data member to ClusteredAxisData which stores the list of tree nodes found during clustering
in process of adapting SwingWorkers to store information in ClusteredAxisData
tidied up the process of adding trees to the model in-memory after clustering
SwingWorker tasks for clustering now return filled ClusteredAxisData objects which contains tree node data and reorderedIDs
first full working prototype for in-memory clustering without writing files
updating file name after clustering to distinguish it from unclustered file
updated ModelLoader to allow TVModel Preferences node creation from outside the class
moved window-closing code to TVController (belongs there anyway) in order to better implement future model saving code
expanded DataModel by two booleans to help appropriate file saving when writing the data
transferred file saving code to ModelSaver and created useful subclasses
enabled save method; added menu option for saving, ask user to save if file was modified and he attempts to close the app
fixed bug where the model did not have its isHierarchical variable set
modified save dialog; exception hanling for SaveTask; extended FileFilter; added Apache Commons IO library for save file extension handling
implemented FilenameUtils instead of unsafe file extension removal in FileSet
fixed file extension issues during saving process
updating TVFrame title after saving by notifying observers after Model changed its FileSet
checking for existing file before saving
setting TVFrame title now only via Observer update
working to fix Preferences, FileMRU, and FileSet issues
working on Preferences, especially FileMRU settings when saving a clustered file
comments and small code improvements
implemented tree file saving alongside CDT
not doing duplicate remove during FileMRU update
updating FileMRU after saving, calling post-saving methods from SaveTask.done()
storing cluster details of a Model in Preferences to preserve them across file loads
added a dialog asking to save modified data
letting all threads wait for SaveTask
moved saving complete dialog
working to get import dialog behavior right
simplified FileSet handling and file identification for Models
fixed import dialog pop up when loading a file from known load data
removed Model node update before Model node was attached, which caused an exception and prevented loading of trees
readding mnu listeners whenever the MenuBar is built; fixed missing file extension in FileMRU list
cancelling file load does not reset screen and model anymore and aborts before any data change is performed...
HierCluster cleanup
reworking handling of reordered axis indices to avoid scrambling and mixture of axis IDs or trees
replaced axis ID identifiers
fixed small axis identifier bug that messed up clustering data; adapted save before close dialog
small changes to HierCluster before refactoring connectNodes()
gradle update due to required Apache Commons Lang dependency
fixed tree scramble bug
some code cleanup
removed old viewframe code which is now in TVController
removed Apache Commons Lang library (not needed)
fixed ClusterFileWriter conflicts
fixed ClusterProcessor conflicts
fixed conflicts in ClusterDialogController
fixed conflicts in MenubarController
fixed TVController conflicts
fixed ViewFrame conflicts
fixed ModelLoader conflicts
deleted ReorderedDataModel
fixed TVModel conflicts
fixed TreeDrawer conflicts
fixed unclustered .txt accidentally using createKmeansCDT()
now importing Model preferences when saving a file such that they are retained
fixed cluster issue where axis IDs were added to labelArray again after multiple clustering (instead of simple reorder)
SUBMISSION DATE: 10/22/2017
ISSUE NUMBER(S): #510 & #511
BRANCH: https://bitbucket.org/TreeView3Dev/treeview3/branch/issue-%23510
TEST JAR: https://bitbucket.org/TreeView3Dev/treeview3/downloads/treeview3-all-5b97654a.jar
LEVEL OF EFFORT: overhaul
DESCRIPTION OF CHANGES:
This changes file handling from the ground up. Many changes to various classes and modules needed to be performed to decouple clustering from File saving. FileSet, FileMRU, Preferences, Clustering, all classes related to SaveTask() such as *FileGenerators, TreeViewFrame, TVController (for task delegation and menu bar reasons) were adapted.
removed author tag
removed more author tags
updated JavaDoc for SaveTask class
updated ClusterFileGenerator JavaDoc
deleted ReorderedDataModel, deleted code related to subDataModel; commented out saving behavior for clustering; moved ordering out of ClusterFileGenerator to ClusterDialogController; implemented first draft of method for updating the TVModel in TVController
first functioning in-memory update of TVModel; labels and trees still missing
added defaults to ClusteredAxisData to avoid NullPointers
implemented display of reordered labels; cluster IDs still absent
implemented reordered labels for in-memory loading of cluster data
in place update of reordered labels implemented
extracted code to update the model with cluster information into its own class
created special class for adding tree node data to a data model
disabled tree file writing; added data member to ClusteredAxisData which stores the list of tree nodes found during clustering
in process of adapting SwingWorkers to store information in ClusteredAxisData
tidied up the process of adding trees to the model in-memory after clustering
SwingWorker tasks for clustering now return filled ClusteredAxisData objects which contains tree node data and reorderedIDs
first full working prototype for in-memory clustering without writing files
updating file name after clustering to distinguish it from unclustered file
updated ModelLoader to allow TVModel Preferences node creation from outside the class
moved window-closing code to TVController (belongs there anyway) in order to better implement future model saving code
expanded DataModel by two booleans to help appropriate file saving when writing the data
transferred file saving code to ModelSaver and created useful subclasses
enabled save method; added menu option for saving, ask user to save if file was modified and he attempts to close the app
fixed bug where the model did not have its isHierarchical variable set
modified save dialog; exception hanling for SaveTask; extended FileFilter; added Apache Commons IO library for save file extension handling
implemented FilenameUtils instead of unsafe file extension removal in FileSet
fixed file extension issues during saving process
updating TVFrame title after saving by notifying observers after Model changed its FileSet
checking for existing file before saving
setting TVFrame title now only via Observer update
working to fix Preferences, FileMRU, and FileSet issues
working on Preferences, especially FileMRU settings when saving a clustered file
comments and small code improvements
implemented tree file saving alongside CDT
not doing duplicate remove during FileMRU update
updating FileMRU after saving, calling post-saving methods from SaveTask.done()
storing cluster details of a Model in Preferences to preserve them across file loads
added a dialog asking to save modified data
letting all threads wait for SaveTask
moved saving complete dialog
working to get import dialog behavior right
simplified FileSet handling and file identification for Models
fixed import dialog pop up when loading a file from known load data
removed Model node update before Model node was attached, which caused an exception and prevented loading of trees
readding mnu listeners whenever the MenuBar is built; fixed missing file extension in FileMRU list
cancelling file load does not reset screen and model anymore and aborts before any data change is performed...
HierCluster cleanup
reworking handling of reordered axis indices to avoid scrambling and mixture of axis IDs or trees
replaced axis ID identifiers
fixed small axis identifier bug that messed up clustering data; adapted save before close dialog
small changes to HierCluster before refactoring connectNodes()
gradle update due to required Apache Commons Lang dependency
fixed tree scramble bug
some code cleanup
removed old viewframe code which is now in TVController
removed Apache Commons Lang library (not needed)
fixed ClusterFileWriter conflicts
fixed ClusterProcessor conflicts
fixed conflicts in ClusterDialogController
fixed conflicts in MenubarController
fixed TVController conflicts
fixed ViewFrame conflicts
fixed ModelLoader conflicts
deleted ReorderedDataModel
fixed TVModel conflicts
fixed TreeDrawer conflicts
fixed unclustered .txt accidentally using createKmeansCDT()
now importing Model preferences when saving a file such that they are retained
fixed cluster issue where axis IDs were added to labelArray again after multiple clustering (instead of simple reorder)
Some cleamups'