package edu.harvard.wcfia.yoshikoder.ui; import java.awt.Color; import java.io.File; import java.util.Locale; import javax.swing.BorderFactory; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JTextField; import edu.harvard.wcfia.yoshikoder.document.YKDocument; import edu.harvard.wcfia.yoshikoder.document.YKDocumentFactory; import edu.harvard.wcfia.yoshikoder.util.FileUtil; public class DocumentPropertiesPanel extends CommitablePanel { class LocaleWrapper{ Locale locale; LocaleWrapper(Locale l){ locale = l; } public String toString(){ return locale.getDisplayName(); } } protected YKDocument document; protected JTextField titleField; protected JTextField charsetField; protected JComboBox localeList; protected JTextField locationField; protected JComboBox fontChoice; protected JTextField fileField; public DocumentPropertiesPanel(YKDocument doc) { super(); document = doc; titleField = new JTextField(); titleField.setText(document.getTitle()); Color bg = getBackground(); locationField = new JTextField(document.getLocation().getAbsolutePath()); locationField.setEditable(false); locationField.setBackground(bg); charsetField = new JTextField(document.getCharsetName()); charsetField.setEditable(false); charsetField.setBackground(bg); Locale[] locs = FileUtil.getAvailableLocales(); DefaultComboBoxModel dcm = new DefaultComboBoxModel(); for (int ii=0; ii<locs.length; ii++) dcm.addElement(new LocaleWrapper(locs[ii])); localeList = new JComboBox(dcm); LocaleWrapper lw = new LocaleWrapper(document.getLocale()); localeList.setSelectedItem(lw); /* Font font = document.getPreferredFont(); List fontNames = DialogUtil.getFontFamilyNames(); fontChoice = new JComboBox(fontNames.toArray(new String[fontNames.size()])); fontChoice.setSelectedItem(doc.getPreferredFont().getFamily()); */ fileField = new JTextField(); fileField.setText(doc.getLocation().getAbsolutePath()); fileField.setEditable(false); addField("Title:", titleField); addField("File:", fileField); addWidgetInline("Locale:", localeList); addField("Encoding:", charsetField); //addWidgetInline("Font", fontChoice); setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); } public void commit() throws CommitException { //Locale l = // ((LocaleWrapper)localeList.getSelectedValue()).locale; //document.setLocale(l); } public static void main(String[] args) { JDialog dia = new JDialog((JFrame)null, "Properties"); YKDocument doc = YKDocumentFactory.createYKDocument(new File("/Users/will/bosnia.csv"), "bosnia.csv", "UTF-8", Locale.getDefault()); DocumentPropertiesPanel panel = new DocumentPropertiesPanel(doc); dia.getContentPane().add(panel); dia.pack(); dia.show(); } }