1 /* $Id: EditorDesktop.java 15 2008-12-08 19:13:26Z mihlon $ */
2
3 //////////////////////////////////////////////////////////////////////////////
4 // //
5 // This program 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 // This program 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 this program. If not, see <http://www.gnu.org/licenses/>. //
17 // //
18 //////////////////////////////////////////////////////////////////////////////
19
20 package cs.pancava.caltha.desktop;
21
22 import cs.pancava.caltha.worlds.World;
23 import javax.swing.JPanel;
24
25 /**
26 * <p><b>Tato abstraktni trida definuje vzhled editoru pro danou hru.</b></p>
27 *
28 * @author Milan Vaclavik<br />
29 * @version $Revision: 15 $<br />
30 * $LastChangedBy: mihlon $<br />
31 */
32 public abstract class EditorDesktop extends JPanel
33 {
34 /**
35 * Zadny editor - prazdna plocha.
36 */
37 public static final int EDITOR_NONE = 0;
38
39 /**
40 * Editor pro tvorbu textovych her.
41 */
42 public static final int EDITOR_TEXT_BASED_GAMES = 1;
43
44 /**
45 * Identifikace tridy - datum vzniku tridy :).
46 */
47 private static final long serialVersionUID = 20080730134426L;
48
49 /**
50 * Hlavni panel editoru, ktery obsahuje jednotliva okna vytvarejici editor.
51 */
52 private JPanel mainDesktop;
53
54 /**
55 * Urcuje, jaka zakladni plocha editoru se ma vykreslit pro dany typ editoru.
56 */
57 private int druhEditoru;
58
59 /**
60 * Obekt, obsahujici dany svet.
61 */
62 private World world;
63
64 /**
65 * Definuje vzhled jednotlivych funkcnich oken editoru (okno pro vytvareni
66 * sveta, zobrazeni atributu jednotlivych casti sveta a zobrazovani
67 * podrobnejsich informaci.
68 * @param dEditoru int : Urcuje typ editoru pro dany typ hry.
69 */
70 public EditorDesktop(final int dEditoru)
71 {
72 this.druhEditoru = dEditoru;
73
74 this.createDesktop();
75
76 this.world = new World("Verze 1");
77 }
78
79 /**
80 * Vraci referenci na funkcni okna editoru.
81 * @return Container : Panel obsahujici funkcni okna editoru.
82 */
83 public final JPanel getMainDesktop()
84 {
85 return this.mainDesktop;
86 }
87
88 /**
89 * Vraci referenci na prave vytvoreny svet.
90 * @return World : Prave vytvoreny svet.
91 */
92 public final World getWorld()
93 {
94 return this.world;
95 }
96
97 /**
98 * Nastavi referenci na funkcni okna editoru.
99 * @param desktop JPanel : Panel obsahujici funkcni okna editoru.
100 */
101 protected final void setMainDesktop(final JPanel desktop)
102 {
103 this.mainDesktop = desktop;
104 }
105
106 /**
107 * Vytvori zakladni plochu pro dany typ editoru.
108 * Vsechny desktopy dedici tuto tridu museji implementovat tuto metodu.
109 */
110 public abstract void createDesktop();
111
112 /**
113 * Zajisti spravne vykresleni plochy editoru pri zmene velikosti okna programu.
114 */
115 public abstract void resizeWin();
116 }