Graphics:PlotLabel /. Options[{classAttribute[name_String, type_String, units_String] &nbsp;&nbsp; := (* does _String actually do anything here vs . _ alone ... not sure, to be det . *)Module[{objectAttribute}, objectAttribute[name] = name ; objectAttribute[type] = type ; objectAttribute[units] = units ; getName[classAttribute[objectAttribute]] := objectAttribute[name] ; getType[classAttribute[objectAttribute]] := objectAttribute[type] ; getUnits[classAttribute[objectAttribute]] := objectAttribute[units] ; Return[classAttribute[objectAttribute]] ] ; , , classDataSet[importedData_, name_String, sourceFile_String, id_] := Module[{objectDataSet, attributeVector, attributeList = {} }, objectDataSet[id] = id ; objectDataSet[name] = name ; objectDataSet[sourceFile] = sourceFile ; attributeVector&nbsp;&nbsp; = First[importedData] ; Module[{i, attributeInfo}, For[i = 1, i &le; Length[attributeVector], i ++, attributeInfo = StringSplit[attributeVector[[i]], _] ; AppendTo[attributeList, classAttribute[attributeInfo[[1]], attributeInfo[[2]], attributeInfo[[3]]]] ] ] ; objectDataSet[attributeList] = attributeList ; objectDataSet[instanceList] = Drop[importedData, 1] ; getID[classDataSet[objectDataSet]] := objectDataSet[id] ; getName[classDataSet[objectDataSet]] := objectDataSet[name] ; getSourceFile[classDataSet[objectDataSet]] := objectDataSet[sourceFile] ; getAttributeList[classDataSet[objectDataSet]] := objectDataSet[attributeList] ; getInstanceList[classDataSet[objectDataSet]] := objectDataSet[instanceList] ; getNumAttributes[classDataSet[objectDataSet]] := Length[objectDataSet[attributeList]] ; getNumInstances[classDataSet[objectDataSet]] := Length[objectDataSet[instanceList]] ; getAttribute[classDataSet[objectDataSet], index_] := If[index &gt; 0 &amp;&amp;index &le; getNumAttributes[classDataSet[objectDataSet]], objectDataSet[attributeList][[index]] ] ; getInstance[classDataSet[objectDataSet], index_] := If[index &gt; 0 &amp;&amp;index &le; getNumInstances[classDataSet[objectDataSet]],  objectDataSet[instanceList][[index]] ] ; Return[classDataSet[objectDataSet]] ] ; , , RowBox[{RowBox[{RowBox[{classMainWindow[],  , :=,  , , RowBox[{Module, [, RowBox[{{objectMainWindow, w, h, dataSetList, dataSetTableData, plotViewerList, ds1}, ,, , , (*** ** ** ** ** ** ** ** ** ** *********), , (*** * Initialize variables ****), , (*** ** ** ** ** ** ** ** ** ** *********), , , RowBox[{w = Dynamic[CurrentValue[Notebook, WindowSize][[1]]], ;, , h = Dynamic[CurrentValue[Notebook, WindowSize][[2]]], ;, , dataSetList = {}, ;, , dataSetTableData = {}, ;, , plotViewerList = {}, ;, , , , (*** ** ** ** ** ** ** ** ** *********), , (*** * Method Definitions ****), , (*** ** ** ** ** ** ** ** ** ** *******), , , createDefaultMenuBar[] := Panel[Row[{ActionMenu[File, {Load Data... :&rarr; loadDataSet[], Delimiter, Exit :&rarr; Print[11]}, Appearance &rarr;Button, ImageSize&rarr; {80, 25}], ActionMenu[Plot, {New 2D Cartesian... :&rarr; create2DPlot[], New 3D Cartesian... :&rarr; Print[11]}, Appearance &rarr;Button, ImageSize&rarr; {80, 25}] }, ImageSize&rarr; Scaled[0.5] ], ImageSize&rarr;Full, Background&rarr;Gray], ;, , , , createMainMetadataSection[] := Panel[Column[{createLoadDataButton[], createDataSetTable[Loaded Data Sets, {ID, Name, Source File, # Attributes, # Instances}, dataSetList], createPlotViewerTable[Current Plot Viewer Windows, {ID, Dataset Name, Plot Type}, objectMainWindow[plotViewerList]] }, Left, Spacings&rarr; {Automatic, 3&rarr;3} ], ImageSize&rarr; {0.9 * w, 0.9 * h}, Appearance &rarr; {Frameless}, Background&rarr;LightGray], ;, , , , RowBox[{createLoadDataButton[],  , :=,  , , RowBox[{Row, [, RowBox[{{, , RowBox[{Button, [, RowBox[{RowBox[{Labeled, [, RowBox[{GraphicsBox[TagBox[RasterBox[RawArray[System`Convert`CommonDump`ConvertText[Byte, System`Convert`HTMLDump`htmlsave, HTMLEntities -> {HTMLBasic}, AltMathOutput -> PlotLabel, WindowSize -> {2000, Automatic}, MathOutput -> GIF, ConvertClosed -> False, ConvertReverseClosed -> False, ConvertLinkedNotebooks -> False, CharacterEncoding -> Automatic, ConversionStyleEnvironment -> None, ConversionRules -> Automatic, HeadAttributes -> {}, HeadElements -> {}, CSS -> Automatic, ConvertLinkedNotebooks -> False, MathOutput -> GIF, GraphicsOutput -> GIF, Graphics3DOutput -> Automatic, ManipulateOutput -> CDF, ConvertClosed -> True, ConvertReverseClosed -> False, FullDocument -> True, AltMathOutput -> FileName, TableOutput -> {TextForm, Automatic}, AnimationOutput -> Automatic, FilesDirectory -> HTMLFiles, LinksDirectory -> HTMLLinks, HTMLEntities -> {HTML}, AllowBlockMathML -> False, MathMLOptions -> {UseUnicodePlane1Characters -> False, IncludeMarkupAnnotations -> False, Entities -> MathML}], ArrayObject[Byte, <272160>]], {{0, 210}, {324, 0}}, {0, 255}, ColorFunction -> RGBColor], BoxForm`ImageTag[System`Convert`CommonDump`ConvertText[Byte, System`Convert`HTMLDump`htmlsave, HTMLEntities -> {HTMLBasic}, AltMathOutput -> PlotLabel, WindowSize -> {2000, Automatic}, MathOutput -> GIF, ConvertClosed -> False, ConvertReverseClosed -> False, ConvertLinkedNotebooks -> False, CharacterEncoding -> Automatic, ConversionStyleEnvironment -> None, ConversionRules -> Automatic, HeadAttributes -> {}, HeadElements -> {}, CSS -> Automatic, ConvertLinkedNotebooks -> False, MathOutput -> GIF, GraphicsOutput -> GIF, Graphics3DOutput -> Automatic, ManipulateOutput -> CDF, ConvertClosed -> True, ConvertReverseClosed -> False, FullDocument -> True, AltMathOutput -> FileName, TableOutput -> {TextForm, Automatic}, AnimationOutput -> Automatic, FilesDirectory -> HTMLFiles, LinksDirectory -> HTMLLinks, HTMLEntities -> {HTML}, AllowBlockMathML -> False, MathMLOptions -> {UseUnicodePlane1Characters -> False, IncludeMarkupAnnotations -> False, Entities -> MathML}], ColorSpace -> System`Convert`CommonDump`ConvertText[RGB, System`Convert`HTMLDump`htmlsave, HTMLEntities -> {HTMLBasic}, AltMathOutput -> PlotLabel, WindowSize -> {2000, Automatic}, MathOutput -> GIF, ConvertClosed -> False, ConvertReverseClosed -> False, ConvertLinkedNotebooks -> False, CharacterEncoding -> Automatic, ConversionStyleEnvironment -> None, ConversionRules -> Automatic, HeadAttributes -> {}, HeadElements -> {}, CSS -> Automatic, ConvertLinkedNotebooks -> False, MathOutput -> GIF, GraphicsOutput -> GIF, Graphics3DOutput -> Automatic, ManipulateOutput -> CDF, ConvertClosed -> True, ConvertReverseClosed -> False, FullDocument -> True, AltMathOutput -> FileName, TableOutput -> {TextForm, Automatic}, AnimationOutput -> Automatic, FilesDirectory -> HTMLFiles, LinksDirectory -> HTMLLinks, HTMLEntities -> {HTML}, AllowBlockMathML -> False, MathMLOptions -> {UseUnicodePlane1Characters -> False, IncludeMarkupAnnotations -> False, Entities -> MathML}], Interleaving -> False], Selectable -> False], BaseStyle -> System`Convert`CommonDump`ConvertText[ImageGraphics, System`Convert`HTMLDump`htmlsave, HTMLEntities -> {HTMLBasic}, AltMathOutput -> PlotLabel, WindowSize -> {2000, Automatic}, MathOutput -> GIF, ConvertClosed -> False, ConvertReverseClosed -> False, ConvertLinkedNotebooks -> False, CharacterEncoding -> Automatic, ConversionStyleEnvironment -> None, ConversionRules -> Automatic, HeadAttributes -> {}, HeadElements -> {}, CSS -> Automatic, ConvertLinkedNotebooks -> False, MathOutput -> GIF, GraphicsOutput -> GIF, Graphics3DOutput -> Automatic, ManipulateOutput -> CDF, ConvertClosed -> True, ConvertReverseClosed -> False, FullDocument -> True, AltMathOutput -> FileName, TableOutput -> {TextForm, Automatic}, AnimationOutput -> Automatic, FilesDirectory -> HTMLFiles, LinksDirectory -> HTMLLinks, HTMLEntities -> {HTML}, AllowBlockMathML -> False, MathMLOptions -> {UseUnicodePlane1Characters -> False, IncludeMarkupAnnotations -> False, Entities -> MathML}], ImageSize -> {29., Automatic}, ImageSizeRaw -> {324, 210}, PlotRange -> {{0, 324}, {0, 210}}], ,,  , Load Data, ,, Right}], ]}], ,,  , (loadDataSet[]), ,,  , ImageSize&rarr; {130, 45}}], ]}], , }}], ]}]}], ;, , , , createDataSetTable[tableName_, columnNames_, rowData_] &nbsp;&nbsp; := Module[{}, AppendTo[dataSetTableData, getTableHeaders[columnNames]] ; Row[{Panel[Labeled[Pane[Dynamic[Grid[dataSetTableData, Frame&rarr;All, ItemSize&rarr;Scaled[0.247] ]], Scrollbars&rarr;True, ImageSize&rarr; {0.85 * w, 0.2 * h} ], getStyledTableName[tableName], Top], ImageSize&rarr; {0.87 * w, 0.3 * h} ] }] ], ;, , , , createPlotViewerTable[tableName_, columnNames_, rowData_] &nbsp;&nbsp; := Module[{tableData}, tableData = {getTableHeaders[columnNames]} ; tableData = AppendTo[tableData, &nbsp;&nbsp;getPlotViewerTableInfo[rowData]] ; Row[{Panel[Labeled[Pane[Dynamic[Grid[tableData, Frame&rarr;All, ItemSize&rarr;Scaled[0.247] ]], Scrollbars&rarr;True, ImageSize&rarr; {0.85 * w, 0.2 * h} ], getStyledTableName[tableName], Top], ImageSize&rarr; {0.87 * w, 0.3 * h} ] }] ], ;, , , , getStyledTableName[name_] := Text[name, BaseStyle&rarr; {Large, Bold}], ;, , , , getTableHeaders[columnNames_] := Module[{i, headers = {} }, For[i = 1, i &le; Length[columnNames], i ++, AppendTo[headers, Text[columnNames[[i]], BaseStyle&rarr; {Bold, Larger}]] ] ; Return[headers] ], ;, , , , getDataSetTableInfo[dataSet_] := Module[{}, AppendTo[dataSetTableData, {getID[dataSet], getName[dataSet], getSourceFile[dataSet], getNumAttributes[dataSet], getNumInstances[dataSet]}] ], ;, , , , (* To be completed once further along with PlotViewer module *), , getPlotViewerTableInfo[dataSetList_] := Return[{}], ;, , , , loadDataSet[] := Module[{sourceFile, dataSetName, dataSet, data}, sourceFile = chooseFile[] ; dataSetName = inputDataSetName[Length[dataSetList] + 1] ; (* Length[dataSetList] parameter used atm b/c of temp . fix to InputString issue *)data = Import[sourceFile] ; dataSet = classDataSet[data, dataSetName, sourceFile, Length[dataSetList] + 1] ; AppendTo[dataSetList, dataSet] ; AppendTo[dataSetTableData, getDataSetTableInfo[dataSet]] ; ], ;, , , , (* Need to diagnose why SystemDialogInput[FileOpen] doesn ' t work correctly, or find alternative method *), , chooseFile[] := &nbsp;&nbsp;Module[{file}, (* below line should work but doesn ' t why ???? *)(* file = SystemDialogInput[FileOpen] ; *)file = C:\\Users\\Matthew\\Documents\\Spring 2014 Classes\\CSCE 470\\Software Development Project Stuff\\Mathematica Stuff\\Test Format CSV Files\\Test2.csv ; Return[file] ], ;, , , , (* Need to diagnose why InputString[] doesn ' t work correctly, or find alternative method *), , inputDataSetName[id_] := Module[{}, (* below line doesn ' t work for some reason *)(* Return[InputString[Enter data set name:]] ; *)Return[dataSet &lt;&gt; ToString[id]] ], ;, , , , (* This will create an object2DPlotViewer when that module is complete *), , create2DPlot[] := Module[{}, CreateWindow[DocumentNotebook[Panel[coming soon...]]] ], ;, , , , (*** ** ** ** ** ** ** ** ** ** ** *************), , (*** * Main/Initialization Code ****), , (*** ** ** ** ** ** ** ** ** ** ** ** ** *********), , , Deploy[Panel[ Column[{createDefaultMenuBar[], createMainMetadataSection[] }, ItemSize&rarr;Scaled[1.0] ], ImageSize&rarr; {0.9 * w, 0.9 * h}, Background&rarr;LightGray] ]}]}], , , , ]}]}], ;}], , , (* then &ldquo;run&rdquo;/&ldquo;make an instance of&rdquo; classMainWindow[] like this : *)}], , x = classMainWindow[], }]

Spikey Created with Wolfram Mathematica 9.0