Statistics
| Revision:

root / trunk / frameworks / _fwAndami / schemas / plugin-config.xsd @ 32877

History | View | Annotate | Download (12.3 KB)

1
<?xml version="1.0" encoding="UTF-8" ?>
2

    
3
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
4

    
5
<!--
6
	action-tool => Button which fires the execution of this extension
7

    
8
	action-command	Text to identify different action-tools inside a plugin
9
	text		Button's text.
10
	name			Button name (to retrive it)
11
	icon		Tool icon
12
	last		If true, a separator is added.
13
	tooltip		Tooltip
14
	enable-text Text that describes the necessary conditions to enable a tool
15
	position    The position inside the toolbar
16
-->
17
  <xs:element name="action-tool">
18
    <xs:complexType>
19
      <xs:attribute name="text" type="xs:string" use="optional" />
20
      <xs:attribute name="name" type="xs:string" use="optional" />
21
      <xs:attribute name="action-command" type="xs:string" use="optional" />
22
      <xs:attribute name="icon" type="xs:string" use="required" />
23
      <xs:attribute name="last" type="xs:boolean" use="optional" />
24
      <xs:attribute name="tooltip" type="xs:string" use="optional" />
25
      <xs:attribute name="enable-text" type="xs:string" use="optional" />
26
      <xs:attribute name="position" type="xs:int" use="optional" />
27
    </xs:complexType>
28
  </xs:element>
29

    
30
<!--
31
	Plugin dependencies from other plugins
32
	plugin-name		Name of the other plugin (name of the directory.)
33
					Example; com.iver.cig.gvsig
34
-->
35
  <xs:element name="depends">
36
    <xs:complexType>
37
      <xs:attribute name="plugin-name" type="xs:string" use="required" />
38
    </xs:complexType>
39
  </xs:element>
40

    
41
<!--
42
	Extension to Andami
43

    
44
	class-name		Class that handles the extension
45
	menu			Menus installed by the extension
46
	tool-bar		Toolbar installed by this plugin
47
	priority	Orden en el que se procesaran las extensiones durante la
48
				carga de Andami. Se inicializan primero y se instalan sus controles
49
				en las barras de tareas primero. La prioridad es
50
				mayor cuanto más grande es el valor del atributo
51
-->
52

    
53

    
54
	<xs:element name="extension" type="extension-type"/>
55
	<xs:complexType name="extension-type">
56
		<xs:complexContent>
57
		<xs:extension base="skin-extension-type">
58
	    <xs:attribute name="priority" type="xs:int" use="optional" />
59
		<xs:attribute name="active" type="xs:boolean" use="optional" />
60
		<xs:attribute name="description" type="xs:string" use="optional" />
61
		<xs:attribute name="alwaysvisible" type="xs:boolean" use="optional" />
62
	  </xs:extension>
63
	</xs:complexContent>
64
  </xs:complexType>
65

    
66
<!--
67
	Extension's section of the plugin
68
-->
69
  <xs:element name="extensions">
70
    <xs:complexType>
71
      <xs:sequence>
72
        <xs:element ref="extension" maxOccurs="unbounded" />
73
        <xs:element ref="skin-extension" minOccurs="0" maxOccurs="unbounded" />
74
      </xs:sequence>
75

    
76
    </xs:complexType>
77
  </xs:element>
78

    
79
<!--
80
	Main application's Icon
81

    
82
	text 	Title of main window.
83
	src	    path to an icon file
84
-->
85
  <xs:element name="icon">
86
    <xs:complexType>
87
      <xs:attribute name="text" type="xs:string" use="required" />
88
      <xs:attribute name="src" type="xs:string" use="required" />
89
    </xs:complexType>
90
  </xs:element>
91

    
92
<!--
93
	label => In this element you can put the mesages that must appear in the
94
			status bar
95

    
96
	size	Size in pixels of the status label
97
	id		Id assigned to this label
98
-->
99
  <xs:element name="label">
100
    <xs:complexType>
101
      <xs:attribute name="size" type="xs:int" use="required" />
102
      <xs:attribute name="id" type="xs:NMTOKEN" use="required" />
103
    </xs:complexType>
104
  </xs:element>
105

    
106
<!--
107
	Group of labels on the status bar. The order from up to down in xml file
108
	stands for the order right to left in Andami's principal frame.
109

    
110
	class-name	When the active view is an instance of class-name, this
111
			labelSet will be shown.
112
-->
113
  <xs:element name="label-set">
114
    <xs:complexType>
115
      <xs:sequence>
116
        <xs:element ref="label" maxOccurs="unbounded" />
117
      </xs:sequence>
118
      <xs:attribute name="class-name" type="xs:NMTOKEN" use="required" />
119
    </xs:complexType>
120
  </xs:element>
121

    
122
<!--
123
	jars that are used by this plugin
124
	library-dir     Relative path where the jar files are. Usually ./ or ./lib
125
-->
126
  <xs:element name="libraries">
127
    <xs:complexType>
128
      <xs:attribute name="library-dir" type="xs:string" use="required" />
129
    </xs:complexType>
130
  </xs:element>
131

    
132
<!--
133
	action-command	Text to identify different menus inside the same plugin
134

    
135
	key		    Abreviatura de teclado del menu
136
	icon		Menu Icon
137
	enable-text Texto con la descripción de las condiciones que se tienen que dar
138
				para que se visualice la opción
139
	tooltip		Tooltip
140
	mnemonic	Accelerator key
141
	text 		Menu Text
142
	is_separator true means to add a JSeparator to the parent menu defined by text
143
-->
144
  <xs:element name="menu">
145
    <xs:complexType>
146
      <xs:attribute name="action-command" type="xs:string" use="optional" />
147
      <xs:attribute name="key" type="xs:string" use="optional" />
148
      <xs:attribute name="icon" type="xs:string" use="optional" />
149
      <xs:attribute name="tooltip" type="xs:string" use="optional" />
150
      <xs:attribute name="enable-text" type="xs:string" use="optional" />
151
      <xs:attribute name="mnemonic" type="xs:string" use="optional" />
152
      <xs:attribute name="text" type="xs:string" use="required" />
153
      <xs:attribute name="position" type="xs:int" use="optional" />
154
	  <xs:attribute name="is_separator" type="xs:boolean" use="optional" />
155
    </xs:complexType>
156
  </xs:element>
157

    
158
<!--
159
	XML File Root
160

    
161
	name		Plugin's Name
162
	updateURL	URL of zip-file with a new plugin's version.
163
-->
164
  <xs:element name="plugin-config">
165
    <xs:complexType>
166
      <xs:sequence>
167
        <xs:element ref="icon" minOccurs="0"/>
168
        <xs:element ref="depends" minOccurs="0" maxOccurs="unbounded"/>
169
        <xs:element ref="resourceBundle" minOccurs="0"/>
170
        <xs:element ref="label-set" minOccurs="0" maxOccurs="unbounded"/>
171
        <xs:element ref="libraries"/>
172
        <xs:element ref="popup-menus" minOccurs="0"/>
173
        <xs:element ref="extensions" />
174
      </xs:sequence>
175
      <xs:attribute name="update-url" type="xs:string" use="optional" />
176
    </xs:complexType>
177
  </xs:element>
178

    
179
<!--
180
	Popup menu by the plugin. The plugin must register itself as a
181
	popup-menu listener.
182
-->
183
  <xs:element name="popup-menu">
184
    <xs:complexType>
185
      <xs:sequence>
186
        <xs:element ref="menu" maxOccurs="unbounded" />
187
      </xs:sequence>
188
      <xs:attribute name="name" type="xs:string" use="required" />
189
    </xs:complexType>
190
  </xs:element>
191

    
192
<!--
193
	Section to define popup-menus
194
-->
195
  <xs:element name="popup-menus">
196
    <xs:complexType>
197
      <xs:sequence>
198
        <xs:element ref="popup-menu" maxOccurs="unbounded" />
199
      </xs:sequence>
200
    </xs:complexType>
201
  </xs:element>
202

    
203
<!--
204
	Properties file with translations used by the tool.
205

    
206
	name	Name of resource bundle file
207
-->
208
  <xs:element name="resourceBundle">
209
    <xs:complexType>
210
      <xs:attribute name="name" type="xs:NMTOKEN" use="required" />
211
    </xs:complexType>
212
  </xs:element>
213

    
214
<!--
215
	tool button that remains pressed when it is selected.
216

    
217
	text		Button's text.
218
	name			Button name (to retrive it)
219
	action-command	Text to identify the different action-tools inside a plugin.
220

    
221
	group		Group where the selectable-tool belongs. It will be only one selectable-tool
222
				selected inside the group.
223
	is-default  If true, the selectable-tool will be selected by default.
224
	icon		Icon to use.
225
	last		If true, after the tool it will appears a separator.
226
	tooltip		Tooltip
227
	position	The position inside the toolbar
228
-->
229
  <xs:element name="selectable-tool">
230
    <xs:complexType>
231
      <xs:attribute name="text" type="xs:string" use="optional" />
232
      <xs:attribute name="name" type="xs:string" use="optional" />
233
      <xs:attribute name="action-command" type="xs:string" use="optional" />
234
      <xs:attribute name="is-default" type="xs:boolean" use="optional" />
235
      <xs:attribute name="last" type="xs:boolean" use="optional" />
236
      <xs:attribute name="icon" type="xs:string" use="required" />
237
      <xs:attribute name="tooltip" type="xs:string" use="optional" />
238
      <xs:attribute name="enable-text" type="xs:string" use="optional" />
239
      <xs:attribute name="group" type="xs:string" use="optional" default="unico" />
240
      <xs:attribute name="position" type="xs:int" use="optional" />
241
    </xs:complexType>
242
  </xs:element>
243

    
244
<!--
245
	Extension plugin to andami
246

    
247
	class-name		Class which handles the plugin
248
	menu			Menus installed by the plugin
249
	tool-bar		Toolbar of the plugin. If it doesn't exist, it will be created.
250
	combo-button	combo-button to be added to the status bar
251
	combo-scale		combo-scale to be added to the status bar
252
-->
253
  <xs:element name="skin-extension" type="skin-extension-type"/>
254

    
255
  <xs:complexType name="skin-extension-type">
256
    <xs:sequence>
257
      <xs:element ref="menu" minOccurs="0" maxOccurs="unbounded" />
258
      <xs:element ref="tool-bar" minOccurs="0" maxOccurs="unbounded" />
259
      <xs:element ref="combo-button" minOccurs="0" maxOccurs="unbounded" />
260
      <xs:element ref="combo-scale" minOccurs="0" maxOccurs="unbounded" />
261
    </xs:sequence>
262
    <xs:attribute name="class-name" type="xs:NMTOKEN" use="required" />
263
  </xs:complexType>
264

    
265
<!--
266
	tool-bar => Application's main toolbar
267

    
268
	name	Toolbar name. This way, other plugins can refer to this toolbar
269
			and add tools to this toolbar.
270
	position	Used to order the toolbars. Toolbars with higher position are
271
				placed on the right side, toolbars with lower position are
272
				placed on the left. If it's omitted, the default value is 50.
273

    
274
	combo-button	combo-button to be added to the toolbar
275
	commbo-scale	combo-scale to be added to the toolbar
276
	visible			(Not supported yet). Determines whether the toolbar is
277
					visible by default.	In the future it will be possible to
278
					hide/show toolbars, and this attribute will set its	initial
279
					status.	Note: if the toolBar is defined in several
280
					extensions, the	extension with highest priority will decide
281
					the toolbar's visibility.
282
-->
283
  <xs:element name="tool-bar">
284
    <xs:complexType>
285
      <xs:sequence>
286
        <xs:element ref="action-tool" minOccurs="0" maxOccurs="unbounded" />
287
        <xs:element ref="selectable-tool" minOccurs="0" maxOccurs="unbounded" />
288
        <xs:element ref="combo-button" minOccurs="0" maxOccurs="unbounded" />
289
        <xs:element ref="combo-scale" minOccurs="0" maxOccurs="unbounded" />
290
      </xs:sequence>
291
      <xs:attribute name="name" type="xs:string" use="required" />
292
      <xs:attribute name="position" type="xs:int" use="optional" default="50" />
293
      <xs:attribute name="is-visible" type="xs:boolean" use="optional" default="true" />
294
    </xs:complexType>
295
  </xs:element>
296

    
297
 <!--
298
 	combo-scale => A combo box with numeric values, and editable.
299

    
300
 	name		A name to identify the combo-scale.
301

    
302
 	label		The label to be displayed on the left of the combo
303

    
304
 	elements    A semicolon separated list of the combo box' elements
305

    
306
 	value		The initial selected value. If ommited, the first element is selected
307

    
308
	action-command	Text to identify the different action-tools inside a plugin.
309
 -->
310
  <xs:element name="combo-scale">
311
  	<xs:complexType>
312
  		<xs:attribute name="name" type="xs:string" use="required" />
313
  		<xs:attribute name="label" type="xs:string" use="optional" />
314
  		<xs:attribute name="elements" use="required" />
315
  		<xs:attribute name="value" use="optional" />
316
  		<xs:attribute name="action-command" type="xs:string" use="required" />
317
  		<xs:attribute name="position" use="optional" />
318
  	</xs:complexType>
319
  </xs:element>
320
<!--
321
	combo-button => A combo button (drop-down list of selectable buttons).
322

    
323
	name		A name to identify the combo-button
324

    
325
-->
326
  <xs:element name="combo-button">
327
  	<xs:complexType>
328
  		<xs:sequence>
329
        	<xs:element ref="combo-button-element" minOccurs="0" maxOccurs="unbounded" />
330
      	</xs:sequence>
331
  		<xs:attribute name="name" type="xs:string" use="required" />
332
  		<xs:attribute name="position" use="optional" />
333
  	</xs:complexType>
334
  </xs:element>
335

    
336
<!--
337
	combo-button-element => An entry (icon) on the combo-button list
338

    
339
	action-command	Text to identify the different action-tools inside a plugin.
340

    
341
	icon		Icon to use.
342
-->
343
	<xs:element name="combo-button-element">
344
		<xs:complexType>
345
			<xs:attribute name="icon" type="xs:string" use="required"/>
346
			<xs:attribute name="action-command"  type="xs:string"  use="required"/>
347
		</xs:complexType>
348
	</xs:element>
349

    
350
</xs:schema>