package de.danielsenff.madds; import java.awt.Dimension; import java.io.File; import java.util.List; import javax.swing.JDialog; import javax.swing.JFileChooser; import net.bouthier.treemapSwing.TMView; import net.bouthier.treemapSwing.TreeMap; import net.bouthier.treemapSwing.fileViewer.TMFileModelSize; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.ciscavate.cjwizard.PageFactory; import org.ciscavate.cjwizard.WizardContainer; import org.ciscavate.cjwizard.WizardListener; import org.ciscavate.cjwizard.WizardPage; import org.ciscavate.cjwizard.WizardSettings; import de.danielsenff.madds.models.Inventorizer; import de.danielsenff.madds.models.TMTextureModelDraw; import de.danielsenff.madds.models.TMTextureNode; import de.danielsenff.madds.view.WizardFactory; public class Madds { private static Log log = LogFactory.getLog(Madds.class); /** * @param args */ public static void main(String[] args) { new Madds().start(); } public Madds() {} public void start() { // create the WizardContainer: final PageFactory pageFactory = new WizardFactory(); final WizardContainer wizard = new WizardContainer(pageFactory); // stick the WizardContainer into a dialog: final JDialog dialog = new JDialog(); wizard.addWizardListener(new WizardListener(){ @Override public void onCanceled(List<WizardPage> path, WizardSettings settings) { log.debug("settings: "+wizard.getSettings()); dialog.dispose(); } @Override public void onFinished(List<WizardPage> path, WizardSettings settings) { log.debug("settings: "+wizard.getSettings()); dialog.dispose(); // File rootDirectory = new File((String) settings.get("rootDirectory")); // // if(rootDirectory != null && rootDirectory.exists()) { // Inventorizer inventorizer = new Inventorizer(rootDirectory, ".dds"); // inventorizer.startInventoring(rootDirectory); //// displaySizableNode(graph.getFirst()); // // View view = showTMApp(inventorizer, rootDirectory); // MaddsView maddsView = new MaddsView(inventorizer, view); // } } @Override public void onPageChanged(WizardPage newPage, List<WizardPage> path) { log.debug("settings: "+wizard.getSettings()); // Set the dialog title to match the description of the new page: dialog.setTitle("Madds - "+newPage.getDescription()); } }); dialog.getContentPane().add(wizard); dialog.setPreferredSize(new Dimension(800, 600)); dialog.pack(); dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dialog.setVisible(true); } public static TMView showTMApp(Inventorizer inventorizer, File rootFile) throws IllegalAccessException { TMTextureNode model = new TMTextureNode(rootFile); if (model == null) { throw new IllegalAccessException("Error : can't start treemap from " + rootFile.getAbsolutePath()); } TreeMap treeMap = new TreeMap(model); String name = rootFile.getAbsolutePath(); TMFileModelSize fSize = new TMFileModelSize(); TMTextureModelDraw fDraw = new TMTextureModelDraw(); return treeMap.getView(fSize, fDraw); } // private void displaySizableNode(Node<Sizable> node) { // Sizable file = node.getData(); // String message = file.getFileName() +": " +ByteConverter.bit2MibiByte(file.getSize())+ " MibiByte"; // // Logger.getLogger(getClass()).log(message); // // for(Node<Sizable> neighbour : node.getNeighbours() ) { // Logger.getLogger(getClass()).log(neighbour); // // displaySizableNode(neighbour); // } // } public static File openFile(String startFolder) { final JFileChooser fc = new JFileChooser(startFolder); fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); // fc.setFileFilter(new FileNameExtensionFilter("DirectDrawSurface", "DDS")); final int option = fc.showOpenDialog(null); if (option == JFileChooser.APPROVE_OPTION) { File file = fc.getSelectedFile(); return file; } return null; } }