1 /**********************************************
2 * Copyright (C) 2011 Lukas Laag
3 * This file is part of svgreal.
4 *
5 * svgreal is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * svgreal is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with svgreal. If not, see http://www.gnu.org/licenses/
17 **********************************************/
18 package org.vectomatic.svg.edit.client.command;
19
20 import com.extjs.gxt.ui.client.data.ModelData;
21
22 /**
23 * Interface to instantiate command factories
24 * @param <T>
25 * The kind of factory which will be create by this instantiator
26 */
27 public interface IFactoryInstantiator<T extends ICommandFactory> extends ModelData {
28 public static final String NAME = "name";
29 public static final String DESCRIPTION = "description";
30 /**
31 * Create a new ICommandFactory instance
32 * @return
33 */
34 public T create();
35 /**
36 * Provides a short description of the command manufactured by
37 * this factory. The message must be suitable for display
38 * in an undo stack ("Group elements" or "Transform element")
39 */
40 public String getName();
41 /**
42 * Provides a long description explaining in a few line what
43 * the command does.
44 */
45 public String getDescription();
46 }