/*
* @(#)TeddyApplicationModel.java
*
* Copyright (c) 2007-2008 The authors and contributors of JHotDraw.
* You may not use, copy or modify this file, except in compliance with the
* accompanying license terms.
*/
package org.jhotdraw.samples.teddy;
import javax.annotation.Nullable;
import org.jhotdraw.app.action.file.PrintFileAction;
import javax.swing.*;
import org.jhotdraw.app.*;
import java.util.*;
import org.jhotdraw.app.action.*;
import org.jhotdraw.gui.JFileURIChooser;
import org.jhotdraw.samples.teddy.action.FindAction;
import org.jhotdraw.samples.teddy.action.ToggleLineNumbersAction;
import org.jhotdraw.samples.teddy.action.ToggleLineWrapAction;
import org.jhotdraw.samples.teddy.action.ToggleStatusBarAction;
/**
* Provides meta-data and factory methods for an application.
* <p>
* See {@link ApplicationModel} on how this class interacts with an application.
*
* @author Werner Randelshofer
* @version $Id$
*/
public class TeddyApplicationModel extends DefaultApplicationModel {
private static final long serialVersionUID = 1L;
/** Creates a new instance. */
public TeddyApplicationModel() {
}
@Override
public ActionMap createActionMap(Application a, @Nullable View v) {
ActionMap m = super.createActionMap(a, v);
AbstractAction aa;
m.put(FindAction.ID, new FindAction(a, v));
m.put(ToggleLineWrapAction.ID, new ToggleLineWrapAction(a, v));
m.put(ToggleStatusBarAction.ID, new ToggleStatusBarAction(a, v));
m.put(ToggleLineNumbersAction.ID, new ToggleLineNumbersAction(a, v));
m.put(PrintFileAction.ID, null);
return m;
}
@Override
public void initView(Application a, @Nullable View v) {
}
/** Creates the MenuBuilder. */
@Override
protected MenuBuilder createMenuBuilder() {
return new DefaultMenuBuilder() {
@Override
public void addOtherViewItems(JMenu m, Application app, @Nullable View v) {
ActionMap am = app.getActionMap(v);
JCheckBoxMenuItem cbmi;
cbmi = new JCheckBoxMenuItem(am.get(ToggleLineWrapAction.ID));
ActionUtil.configureJCheckBoxMenuItem(cbmi, am.get(ToggleLineWrapAction.ID));
m.add(cbmi);
cbmi = new JCheckBoxMenuItem(am.get(ToggleLineNumbersAction.ID));
ActionUtil.configureJCheckBoxMenuItem(cbmi, am.get(ToggleLineNumbersAction.ID));
m.add(cbmi);
cbmi = new JCheckBoxMenuItem(am.get(ToggleStatusBarAction.ID));
ActionUtil.configureJCheckBoxMenuItem(cbmi, am.get(ToggleStatusBarAction.ID));
m.add(cbmi);
}
};
}
/**
* Creates toolbars for the application.
* This class returns an empty list - we don't want toolbars in a text editor.
*/
@Override
public List<JToolBar> createToolBars(Application app, @Nullable View p) {
return Collections.emptyList();
}
@Override
public JFileURIChooser createOpenChooser(Application app, @Nullable View p) {
JFileURIChooser chooser = new JFileURIChooser();
chooser.setAccessory(new CharacterSetAccessory());
return chooser;
}
@Override
public JFileURIChooser createSaveChooser(Application app, @Nullable View p) {
JFileURIChooser chooser = new JFileURIChooser();
chooser.setAccessory(new CharacterSetAccessory());
return chooser;
}
}