final static public String[] FONT_SIZES = new String[] { "2", "4", "6", "8", "10", "12", "14", "16", "18", "20", "22", "24",
"30", "36", "48", "72" };
public MUIFactory() {
size = new DefaultComboBoxModel(MUIFactory.FONT_SIZES);
styles = new DefaultComboBoxModel();
final ModeController modeController = Controller.getCurrentModeController();
final MNodeStyleController styleController = (MNodeStyleController) modeController
.getExtension(NodeStyleController.class);
final GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment();
final String[] envFonts = gEnv.getAvailableFontFamilyNames();
fonts = new DefaultComboBoxModel(envFonts);
final ListDataListener fontsListener = new ListDataListener() {
public void intervalRemoved(final ListDataEvent e) {
}
public void intervalAdded(final ListDataEvent e) {
}
public void contentsChanged(final ListDataEvent e) {
if (e.getIndex0() != -1) {
return;
}
if (ignoreChangeEvent) {
return;
}
ignoreChangeEvent = true;
final DefaultComboBoxModel source = (DefaultComboBoxModel) e.getSource();
styleController.setFontFamily((String) source.getSelectedItem());
ignoreChangeEvent = false;
}
};
fonts.addListDataListener(fontsListener);
final ListDataListener sizeListener = new ListDataListener() {
public void intervalRemoved(final ListDataEvent e) {
}
public void intervalAdded(final ListDataEvent e) {
}
public void contentsChanged(final ListDataEvent e) {
if (e.getIndex0() != -1) {
return;
}
if (ignoreChangeEvent) {
return;
}
try {
final DefaultComboBoxModel source = (DefaultComboBoxModel) e.getSource();
final int intSize = Integer.parseInt(((String) source.getSelectedItem()));
styleController.setFontSize(intSize);
}
catch (final NumberFormatException nfe) {
}
}
};
size.addListDataListener(sizeListener);
final ListDataListener styleListener = new ListDataListener() {
public void intervalRemoved(final ListDataEvent e) {
}
public void intervalAdded(final ListDataEvent e) {
}
public void contentsChanged(final ListDataEvent e) {
if (e.getIndex0() != -1) {
return;
}
if (ignoreChangeEvent) {
return;
}
final DefaultComboBoxModel source = (DefaultComboBoxModel) e.getSource();
final IStyle style = (IStyle) source.getSelectedItem();
final MLogicalStyleController controller = (MLogicalStyleController) modeController
.getExtension(LogicalStyleController.class);
controller.setStyle(style);
}
};
styles.addListDataListener(styleListener);