[Bprocessor-commit] gui/src/net/sourceforge/bprocessor/gui/actions CsvReader.java, 1.1, 1.2 FileImp
Status: Pre-Alpha
Brought to you by:
henryml
|
From: rimestad <rim...@us...> - 2007-01-31 20:46:08
|
Update of /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/actions In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv19209/src/net/sourceforge/bprocessor/gui/actions Modified Files: CsvReader.java FileImportActionListener.java Log Message: Added a additional panel to the filedialog to select a floor and see the amount of vertexes in the file Index: CsvReader.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/actions/CsvReader.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CsvReader.java 30 Jan 2007 19:50:45 -0000 1.1 --- CsvReader.java 31 Jan 2007 20:45:54 -0000 1.2 *************** *** 132,136 **** classification = Integer.parseInt(st.nextToken()); // Object_kode ! if (floor == chosenFloor) { if (curId < prevId && !verts.isEmpty()) { // Started on new surface --- 132,136 ---- classification = Integer.parseInt(st.nextToken()); // Object_kode ! if (floor == chosenFloor || chosenFloor == -1) { if (curId < prevId && !verts.isEmpty()) { // Started on new surface *************** *** 205,209 **** return s; } else { ! log.info("There were " + verts.size() + " vertexes but edges were null"); return s; } --- 205,209 ---- return s; } else { ! log.warn("There were " + verts.size() + " vertexes which resulted in a empty edge list"); return s; } Index: FileImportActionListener.java =================================================================== RCS file: /cvsroot/bprocessor/gui/src/net/sourceforge/bprocessor/gui/actions/FileImportActionListener.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** FileImportActionListener.java 30 Jan 2007 19:50:45 -0000 1.5 --- FileImportActionListener.java 31 Jan 2007 20:45:54 -0000 1.6 *************** *** 6,14 **** --- 6,23 ---- //--------------------------------------------------------------------------------- package net.sourceforge.bprocessor.gui.actions; + import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; + import java.beans.PropertyChangeEvent; + import java.beans.PropertyChangeListener; + import java.io.BufferedReader; import java.io.File; + import java.io.FileInputStream; + import java.io.InputStreamReader; + import javax.swing.JComboBox; import javax.swing.JFileChooser; + import javax.swing.JLabel; + import javax.swing.JPanel; import net.sourceforge.bprocessor.model.Project; *************** *** 35,38 **** --- 44,49 ---- public void actionPerformed(ActionEvent e) { JFileChooser loadChooser = new JFileChooser(Project.getInstance().getDefaultPath()); + CVSinfo info = new CVSinfo(loadChooser); + loadChooser.setAccessory(info); int lstate = loadChooser.showOpenDialog(null); File lfile = loadChooser.getSelectedFile(); *************** *** 41,45 **** try { CsvReader read = new CsvReader(lfile, Project.getInstance().world()); ! read.importFloor(10); Project.getInstance().changed(Project.getInstance()); } catch (Exception ex) { --- 52,56 ---- try { CsvReader read = new CsvReader(lfile, Project.getInstance().world()); ! read.importFloor(info.getSelectedFloor()); Project.getInstance().changed(Project.getInstance()); } catch (Exception ex) { *************** *** 49,52 **** } ! } --- 60,184 ---- } ! /** ! * A info panel next to the loader telling some of the CSV file information ! * for the users pleasure ! */ ! public class CVSinfo extends JPanel ! implements PropertyChangeListener, ActionListener { ! private File file = null; ! ! private JComboBox floor; ! ! private JLabel linesLabel; ! ! private int selectedFloor; ! ! /** ! * The constructor ! * @param fc the filechooser to add the additional view to ! */ ! public CVSinfo(JFileChooser fc) { ! setPreferredSize(new Dimension(100, 50)); ! floor = new JComboBox(); ! floor.addItem("All"); ! floor.setSelectedIndex(0); ! floor.addActionListener(this); ! this.add(floor); ! linesLabel = new JLabel("Lines:"); ! this.add(linesLabel); ! fc.addPropertyChangeListener(this); ! } ! ! /** ! * @return The chosen floor -1 if all are selected ! */ ! public int getSelectedFloor() { ! return selectedFloor; ! } ! ! /** ! * {@inheritDoc} ! */ ! public void propertyChange(PropertyChangeEvent e) { ! boolean update = false; ! String prop = e.getPropertyName(); ! ! //If the directory changed, don't show an image. ! if (JFileChooser.DIRECTORY_CHANGED_PROPERTY.equals(prop)) { ! file = null; ! update = true; ! ! //If a file became selected, find out which one. ! } else if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(prop)) { ! file = (File) e.getNewValue(); ! update = true; ! } ! ! if (update && file != null && file.exists() && file.canRead()) { ! try { ! BufferedReader bf; ! FileInputStream fis = new FileInputStream(file); ! InputStreamReader isr = new InputStreamReader(fis); ! bf = new BufferedReader(isr); ! int lines = 0; ! long floors = 0; ! while (bf.ready()) { ! String line = bf.readLine(); ! if (line.charAt(0) == '#') { ! //skip comments ! continue; ! } else { ! lines++; ! //read info from file ! String[] tokens = line.split(";"); ! if (tokens.length < 15) { ! throw new Exception("Wrong file format"); ! } ! long f = Long.parseLong(tokens[2]); //read out the floor ! floors = floors | (long)Math.pow(2, f); ! } ! } ! ! resetView(); ! ! for (int i = 0; i < 64; i++) { ! long val = (floors >> i) & 1; ! if (val == 1) { ! floor.addItem("" + i); ! } ! } ! linesLabel.setText("Lines: " + lines); ! } catch (Exception exc) { ! log.error(exc); ! } ! if (isShowing()) { ! repaint(); ! } ! } else { ! resetView(); ! } ! } ! ! /** ! * Reset all info in view ! */ ! private void resetView() { ! linesLabel.setText("Lines:"); ! floor.removeAllItems(); ! floor.addItem("All"); ! } ! ! /** ! * {@inheritDoc} ! */ ! public void actionPerformed(ActionEvent e) { ! if (isShowing()) { ! if (floor.getSelectedIndex() > 0) { ! selectedFloor = Integer.parseInt((String)floor.getSelectedItem()); ! } else { ! selectedFloor = -1; ! } ! } ! } ! } } |