/* * @(#)DefaultApplicationModel.java * * Copyright (c) 1996-2010 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.app; import javax.annotation.Nullable; import org.jhotdraw.app.action.file.SaveFileAsAction; import org.jhotdraw.app.action.file.SaveFileAction; import org.jhotdraw.app.action.file.NewFileAction; import org.jhotdraw.app.action.file.OpenFileAction; import org.jhotdraw.app.action.file.CloseFileAction; import org.jhotdraw.app.action.edit.PasteAction; import org.jhotdraw.app.action.edit.RedoAction; import org.jhotdraw.app.action.edit.CutAction; import org.jhotdraw.app.action.edit.DeleteAction; import org.jhotdraw.app.action.edit.CopyAction; import org.jhotdraw.app.action.edit.DuplicateAction; import org.jhotdraw.app.action.edit.UndoAction; import org.jhotdraw.app.action.edit.SelectAllAction; import java.util.*; import javax.swing.*; import org.jhotdraw.app.action.edit.ClearSelectionAction; /** * An {@link ApplicationModel} which creates a default set of {@code Action}s * and which does not override any of the default menu bars nor create tool bars. * <p> * The following actions are created by the {@code createActionMap} method of * this model: * <ul> * <li>{@link NewFileAction}</li> * <li>{@link OpenFileAction}</li> * <li>{@link SaveFileAction}</li> * <li>{@link SaveFileAsAction}</li> * <li>{@link CloseFileAction}</li> * * <li>{@link UndoAction}</li> * <li>{@link RedoAction}</li> * <li>{@link CutAction}</li> * <li>{@link CopyAction}</li> * <li>{@link PasteAction}</li> * <li>{@link DeleteAction}</li> * <li>{@link DuplicateAction}</li> * <li>{@link SelectAllAction}</li> * <li>{@link ClearSelectionAction}</li> * </ul> * * <p>The {@code createMenu...} methods of this model return null, resulting in * a set of default menu bars created by the {@link Application} which holds * this model. * * @author Werner Randelshofer. * @version $Id$ */ public class DefaultApplicationModel extends AbstractApplicationModel { private static final long serialVersionUID = 1L; @Nullable private MenuBuilder menuBuilder; /** * Does nothing. */ @Override public void initView(Application a, View v) { } /** * Returns an {@code ActionMap} with a default set of actions (See * class comments). */ @Override public ActionMap createActionMap(Application a, @Nullable View v) { ActionMap m=new ActionMap(); m.put(NewFileAction.ID, new NewFileAction(a)); m.put(OpenFileAction.ID, new OpenFileAction(a)); m.put(SaveFileAction.ID, new SaveFileAction(a,v)); m.put(SaveFileAsAction.ID, new SaveFileAsAction(a,v)); m.put(CloseFileAction.ID, new CloseFileAction(a,v)); m.put(UndoAction.ID, new UndoAction(a,v)); m.put(RedoAction.ID, new RedoAction(a,v)); m.put(CutAction.ID, new CutAction()); m.put(CopyAction.ID, new CopyAction()); m.put(PasteAction.ID, new PasteAction()); m.put(DeleteAction.ID, new DeleteAction()); m.put(DuplicateAction.ID, new DuplicateAction()); m.put(SelectAllAction.ID, new SelectAllAction()); m.put(ClearSelectionAction.ID, new ClearSelectionAction()); return m; } /** Returns an empty unmodifiable list. */ @Override public List<JToolBar> createToolBars(Application app, @Nullable View p) { return Collections.emptyList(); } /** Creates the DefaultMenuBuilder. */ protected MenuBuilder createMenuBuilder() { return new DefaultMenuBuilder(); } @Override public MenuBuilder getMenuBuilder() { if (menuBuilder==null) { menuBuilder=createMenuBuilder(); } return menuBuilder; } public void setMenuBuilder(@Nullable MenuBuilder newValue) { menuBuilder = newValue; } }