Revision 1919

View differences:

org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/test/java/README.txt
1
#set( $symbol_pound = '#' )
2
#set( $symbol_dollar = '$' )
3
#set( $symbol_escape = '\' )
4
For each class you are going to test, create one Test class with the same
5
name as the class to test, ending with Test.
6

  
7
For example, the unit tests of the "ExampleLibrary" class are performed
8
by the "ExampleLibraryTest" class.
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/test/resources/README.txt
1
#set( $symbol_pound = '#' )
2
#set( $symbol_dollar = '$' )
3
#set( $symbol_escape = '\' )
4
Put into this folder the resources needed by your test classes.
5

  
6
This folder is added to the Tests classpath, so you can load any resources 
7
through the ClassLoader.
8

  
9
By default, in this folder you can find an example of log4j configuration,
10
prepared to log messages through the console, so logging works when you
11
run your tests classes.
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/test/resources/log4j.xml
1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3

  
4
<!-- 
5
Log4J configuration file for unit tests execution.
6
 -->
7
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
8

  
9
	<!-- Appender configuration to show logging messages through the console -->
10
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
11
		<layout class="org.apache.log4j.PatternLayout">
12
			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{2}.%M()]\n  %m%n" />
13
		</layout>
14
	</appender>
15

  
16
	<!-- 
17
	Activate logging messages of DEBUG level of higher only for the
18
	DefaultExampleManager class.
19
	You can put full classes names or packages instead, to configure
20
	logging for all the classes and subpackages of the package.
21
	-->
22
	<category name="org.gvsig.scripting.impl.DefaultExampleManager">
23
		<priority value="DEBUG" />
24
	</category>
25

  
26
	<!-- 
27
	By default, show only logging messages of INFO level or higher, 
28
	through the previously configured CONSOLE appender. 
29
	-->
30
	<root>
31
		<priority value="INFO" />
32
		<appender-ref ref="CONSOLE" />
33
	</root>
34
</log4j:configuration>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/javadoc/overview.html
1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml">
4
<head>
5
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
<title>org.gvsig.scripting package documentation</title>
7
</head>
8
<body>
9

  
10
	<p>TODO: Example library overview.</p>
11
	
12
	<p>See the <a href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/javadoc.html#overviewcomment">Javadoc Tool documentation about the overview file</a></p>
13

  
14
</body>
15
</html>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/resources/thing/icons/componentchooser.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!-- jEdit settings: :tabSize=4:indentSize=4:noTabs=true:folding=explicit:collapseFolds=1: -->
3

  
4
<panel bottom="12" columns="1" left="12" right="12" top="12" weightx="1" weighty="1">
5
    <list colspan="2" name="list" line="false" weightx="1" weighty="1" action="selectionChanged(this, lSelected)" perform="close()"/>
6
    <panel gap="6" top="12" weightx="1">
7
        <label text="Selected:"/>
8
        <label name="lSelected" text="null"/>
9
        <panel weightx="1"/>
10
        <button name="bOk" text="Ok" icon="icons/ok.gif" mnemonic="0" type="default" action="ok()"/>
11
        <button name="bCancel" text="Cancel" icon="icons/cancel.gif" mnemonic="0" type="cancel" action="close()"/>
12
    </panel>
13
</panel>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/resources/thing/settings.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!-- jEdit settings: :tabSize=4:indentSize=4:noTabs=true:folding=explicit:collapseFolds=1: -->
3

  
4
<panel border="true" bottom="12" columns="2" gap="20" left="12" right="12" top="12" weightx="1" weighty="1">
5
    <label icon="icons/thing.gif" rowspan="3" valign="top"/>
6
    <panel border="true" bottom="6" font="bold" gap="6" left="6" right="6" text="Icons" top="6">
7
        <label for="tIconpath" mnemonic="0" text="Icon Path:"/>
8
        <textfield name="tIconpath" weightx="1"/>
9
        <button action="chooseDir(tIconpath, tIconpath.text)" name="bChoose" text="..." tooltip="Choose directory"/>
10
    </panel>
11
    <panel border="true" bottom="6" columns="3" font="bold" gap="6" left="6" right="6" text="XML Output" top="6" weightx="1" weighty="1">
12
        <label for="rbIndentSpace" mnemonic="1" text="Indent Char:"/>
13
        <checkbox group="indentChar" halign="left" name="rbIndentSpace" selected="true" text="Space"/>
14
        <checkbox group="indentChar" halign="left" name="rbIndentTab" text="Tab"/>
15
        <label for="spIndentSize" mnemonic="7" text="Indent Size:"/>
16
        <spinbox colspan="2" end="1" halign="left" maximum="100" minimum="1" name="spIndentSize" start="1" text="4"/>
17
        <label for="tCustomHeader" mnemonic="7" text="Custom Header:" valign="top"/>
18
        <textarea colspan="3" height="80" name="tCustomHeader" weightx="1" weighty="1" width="300"/>
19
    </panel>
20
    <panel gap="6" halign="right" weightx="1">
21
        <button action="ok(tIconpath.text, spIndentSize.text, rbIndentSpace.selected, rbIndentTab.selected, tCustomHeader.text)" icon="icons/ok.gif" mnemonic="0" name="bOk" text="Ok" valign="bottom" weighty="1"/>
22
        <button action="close()" icon="icons/cancel.gif" mnemonic="0" name="bCancel" text="Cancel" type="cancel" valign="bottom" weighty="1"/>
23
    </panel>
24
</panel>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/resources/thing/version.properties
1
# ThinG version number
2
version=0.1
3

  
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/resources/thing/generator.properties
1
# jEdit settings:
2
# :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1:
3
#
4
# Templates for the ThinG Generator.
5
#
6
# Important:
7
# When changing any of the templates, please keep in mind:
8
# - leading whitespace must be enclosed in quotes '...'
9
# - brackets '{' and '}' must be enclosed in quotes unless they denote a parameter
10
# - end-of-lines are always denoted with '\n'. The generator may change this
11
#   into the OS specific line separator such as '\r\n' on Windows or '\r' on Mac.
12

  
13

  
14
# 0: current date (java.util.Date instance)
15
file.header.firstline=\
16
	// Generated by ThinG on {0,date} {0,time}.\n\
17
	\n
18

  
19

  
20
# 0: "<package-spec>", e.g. "foo.bar.baz"
21
file.header.package=\
22
	package {0};\n\
23
	\n
24

  
25

  
26
# 0: additional import statement, e.g. "import thinlet.FrameLauncher;" or ""
27
# 1: JavaDoc comment
28
file.header=\
29
	import thinlet.Thinlet;\n\
30
	{0}\
31
	\n\
32
	\n\
33
	/**\n\
34
	' '* {1}\n\
35
	' '*/\n
36

  
37

  
38
file.footer=\
39
	'}'\n
40

  
41

  
42
# 0: "<classname>"
43
# 1: "[ extends Thinlet]"
44
# 2: "[ implements <interfacename>]"
45
handler.signature=\
46
	public class {0}{1}{2}\n\
47
	'{'\n
48

  
49

  
50
# 0: "<interfacename>"
51
interface.signature=\
52
	public interface {0}\n\
53
	'{'\n
54

  
55

  
56
# 0: "<classname>"
57
# 1: "<thinlet-filename>"
58
class.asThinlet.constructor=\
59
	\n\
60
	'    '/**\n\
61
	'     '* Create a new {0} instance.\n\
62
	'     '*/\n\
63
	'    'public {0}() throws java.io.IOException\n\
64
	'    {'\n\
65
	'        'add(parse("{1}"));\n\
66
	'    }'\n\
67
	\n
68

  
69

  
70
# 0: JavaDoc comment for the method.
71
method.javadoc.header=\
72
	\n\
73
	'    '/**\n\
74
	'     '* {0}\n
75

  
76

  
77
method.javadoc.param.intro=\
78
	'     '*\n
79

  
80

  
81
# 1: "<parameter-name>"
82
# 2: JavaDoc comment for the parameter
83
method.javadoc.param=\
84
	'     '* @param {0} {1}\n
85

  
86

  
87
method.javadoc.footer=\
88
	'     '*/\n
89

  
90

  
91
# 0: full method signature, e.g. "mymethod(String param1, int param2)"
92
method.body.interface=\
93
	'    'public void {0};\n\
94
	\n
95

  
96

  
97
# 0: full method signature, e.g. "mymethod(String param1, int param2)"
98
method.body.handler=\
99
	'    'public void {0}\n\
100
	'    {'\n\
101
	'    }'\n\
102
	\n
103

  
104

  
105
# 0: "<classname>"
106
main.asThinlet=\
107
	\n\
108
	'    '/**\n\
109
	'     '* Show a test frame with the Thinlet contents.\n\
110
	'     '*\n\
111
	'     '* @param args  ignored.\n\
112
	'     '*/\n\
113
	'    'public static void main(String[] args) throws java.io.IOException\n\
114
	'    {'\n\
115
	'        'new FrameLauncher("{0}", new {0}(), 400, 400);\n\
116
	'    }'\n\
117
	\n
118

  
119

  
120
# 0: "<classname>"
121
# 1: "<thinlet-filename>"
122
main.notAsThinlet=\
123
	\n\
124
	'    '/**\n\
125
	'     '* Show a test frame with the Thinlet contents.\n\
126
	'     '*\n\
127
	'     '* @param args  ignored.\n\
128
	'     '*/\n\
129
	'    'public static void main(String[] args) throws java.io.IOException\n\
130
	'    {'\n\
131
	'        'class MyThinlet extends Thinlet\n\
132
	'        {'\n\
133
	'            'public MyThinlet() throws java.io.IOException\n\
134
	'            {'\n\
135
	'                'add(parse("{1}", new {0}()));\n\
136
	'            }'\n\
137
	'        };'\n\
138
	'        'new FrameLauncher("{0}", new MyThinlet(), 400, 400);\n\
139
	'    }'\n\
140
	\n
141

  
142

  
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/resources/thing/componentchooser.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!-- jEdit settings: :tabSize=4:indentSize=4:noTabs=true:folding=explicit:collapseFolds=1: -->
3

  
4
<panel bottom="12" columns="1" left="12" right="12" top="12" weightx="1" weighty="1">
5
    <list colspan="2" name="list" line="false" weightx="1" weighty="1" action="selectionChanged(this, lSelected)" perform="close()"/>
6
    <panel gap="6" top="12" weightx="1">
7
        <label text="Selected:"/>
8
        <label name="lSelected" text="null"/>
9
        <panel weightx="1"/>
10
        <button name="bOk" text="Ok" icon="icons/ok.gif" mnemonic="0" type="default" action="ok()"/>
11
        <button name="bCancel" text="Cancel" icon="icons/cancel.gif" mnemonic="0" type="cancel" action="close()"/>
12
    </panel>
13
</panel>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/resources/thing/thing.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!-- jEdit settings: :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: -->
3

  
4
<panel columns="1" gap="4">
5

  
6
	<menubar weightx="1">
7
		<menu text="File" mnemonic="0">
8
			<menuitem text="New" mnemonic="0" icon="icons/empty_menu.gif" accelerator="ctrl N" action="menu_file_new()"/>
9
			<menuitem text="Open..." mnemonic="0" icon="icons/empty_menu.gif" accelerator="ctrl O" action="menu_file_open()"/>
10
			<separator/>
11
			<menuitem text="Reload" mnemonic="0" icon="icons/empty_menu.gif" accelerator="ctrl R" action="menu_file_reload()"/>
12
			<separator/>
13
			<menuitem text="Save" mnemonic="0" icon="icons/empty_menu.gif" accelerator="ctrl S" action="menu_file_save()"/>
14
			<menuitem text="Save As..." mnemonic="5" icon="icons/empty_menu.gif" action="menu_file_save_as()"/>
15
			<separator/>
16
			<menuitem text="Exit" mnemonic="0" icon="icons/empty_menu.gif" accelerator="alt F4" action="menu_file_exit()"/>
17
		</menu>
18
		<menu text="Edit" mnemonic="0">
19
			<menuitem text="Cut" name="menu_edit_cut" mnemonic="0" accelerator="ctrl X" icon="icons/edit_cut.gif" action="menu_edit_cut()"/>
20
			<menuitem text="Copy" name="menu_edit_copy" mnemonic="1" accelerator="ctrl C" icon="icons/edit_copy.gif" action="menu_edit_copy()"/>
21
			<menuitem text="Paste" name="menu_edit_paste" mnemonic="0" accelerator="ctrl V" icon="icons/edit_paste.gif" action="menu_edit_paste()"/>
22
			<menuitem text="Paste from system clipboard" name="menu_edit_paste_systemcb" mnemonic="1" accelerator="ctrl shift V" icon="icons/empty_menu.gif" action="menu_edit_paste_systemcb()"/>
23
			<menuitem text="Delete" name="menu_edit_delete" mnemonic="0" icon="icons/edit_delete.gif" action="menu_edit_delete()"/>
24
			<separator/>
25
			<menuitem text="Settings..." mnemonic="0" icon="icons/empty_menu.gif" action="menu_edit_settings()"/>
26
		</menu>
27
		<menu text="Tools" mnemonic="0">
28
			<menuitem text="Generate Handler Stub Source..." name="menu_tools_generate" mnemonic="0" accelerator="ctrl G" icon="icons/empty_menu.gif" action="menu_tools_generate()"/>
29
		</menu>
30
		<menu text="Help" mnemonic="0">
31
			<menuitem text="About Thing..." mnemonic="0" icon="icons/thing_small.gif" action="menu_help_about()"/>
32
		</menu>
33
	</menubar>
34

  
35
	<panel name="toolbar" weightx="1" gap="-1">
36

  
37
		<!-- top level components -->
38
		<button name="tb_add_panel" property="classname=panel" icon="icons/panel.gif" tooltip="Create new panel" action="addComponent(this)"/>
39
		<button name="tb_add_dialog" property="classname=dialog" icon="icons/dialog.gif" tooltip="Create new dialog" action="addComponent(this)"/>
40
		<button name="tb_add_desktop" property="classname=desktop" icon="icons/desktop.gif" tooltip="Create new desktop" action="addComponent(this)"/>
41
		<button name="tb_add_splitpane" property="classname=splitpane" icon="icons/splitpane.gif" tooltip="Create new splitpane" action="addComponent(this)"/>
42
		<button name="tb_add_tabbedpane" property="classname=tabbedpane" icon="icons/tabbedpane.gif" tooltip="Create new tabbedpane" action="addComponent(this)"/>
43

  
44
		<!-- menu components -->
45
		<button name="tb_add_menubar" property="classname=menubar" icon="icons/menubar.gif" tooltip="Create new menubar" action="addComponent(this)"/>
46
		<button name="tb_add_menu" property="classname=menu" icon="icons/menu.gif" tooltip="Create new menu" action="addComponent(this)"/>
47
		<button name="tb_add_menuitem" property="classname=menuitem" icon="icons/menuitem.gif" tooltip="Create new menuitem" action="addComponent(this)"/>
48
		<button name="tb_add_checkboxmenuitem" property="classname=checkboxmenuitem" icon="icons/checkboxmenuitem.gif" tooltip="Create new checkboxmenuitem" action="addComponent(this)"/>
49

  
50
		<!-- components -->
51
		<button name="tb_add_label" property="classname=label" icon="icons/label.gif" tooltip="Create new label" action="addComponent(this)"/>
52
		<button name="tb_add_button" property="classname=button" icon="icons/button.gif" tooltip="Create new button" action="addComponent(this)"/>
53
		<button name="tb_add_togglebutton" property="classname=togglebutton" icon="icons/togglebutton.gif" tooltip="Create new togglebutton" action="addComponent(this)"/>
54
		<button name="tb_add_checkbox" property="classname=checkbox" icon="icons/checkbox.gif" tooltip="Create new checkbox" action="addComponent(this)"/>
55
		<button name="tb_add_textfield" property="classname=textfield" icon="icons/textfield.gif" tooltip="Create new textfield" action="addComponent(this)"/>
56
		<button name="tb_add_combobox" property="classname=combobox" icon="icons/combobox.gif" tooltip="Create new combobox" action="addComponent(this)"/>
57
		<button name="tb_add_passwordfield" property="classname=passwordfield" icon="icons/passwordfield.gif" tooltip="Create new passwordfield" action="addComponent(this)"/>
58
		<button name="tb_add_spinbox" property="classname=spinbox" icon="icons/spinbox.gif" tooltip="Create new spinbox" action="addComponent(this)"/>
59
		<button name="tb_add_progressbar" property="classname=progressbar" icon="icons/progressbar.gif" tooltip="Create new progressbar" action="addComponent(this)"/>
60
		<button name="tb_add_slider" property="classname=slider" icon="icons/slider.gif" tooltip="Create new slider" action="addComponent(this)"/>
61
		<button name="tb_add_separator" property="classname=separator" icon="icons/separator.gif" tooltip="Create new separator" action="addComponent(this)"/>
62
		<button name="tb_add_list" property="classname=list" icon="icons/list.gif" tooltip="Create new list" action="addComponent(this)"/>
63
		<button name="tb_add_table" property="classname=table" icon="icons/table.gif" tooltip="Create new table" action="addComponent(this)"/>
64
		<button name="tb_add_textarea" property="classname=textarea" icon="icons/textarea.gif" tooltip="Create new textarea" action="addComponent(this)"/>
65
		<button name="tb_add_tree" property="classname=tree" icon="icons/tree.gif" tooltip="Create new tree" action="addComponent(this)"/>
66

  
67
		<!-- list items -->
68
		<button name="tb_add_choice" property="classname=choice" icon="icons/choice.gif" tooltip="Create new choice" action="addComponent(this)"/>
69
		<button name="tb_add_item" property="classname=item" icon="icons/item.gif" tooltip="Create new item" action="addComponent(this)"/>
70
		<button name="tb_add_node" property="classname=node" icon="icons/node.gif" tooltip="Create new node" action="addComponent(this)"/>
71
		<button name="tb_add_tab" property="classname=tab" icon="icons/tab.gif" tooltip="Create new tab" action="addComponent(this)"/>
72

  
73
		<!-- table components -->
74
		<button name="tb_add_row" property="classname=row" icon="icons/row.gif" tooltip="Create new row" action="addComponent(this)"/>
75
		<button name="tb_add_cell" property="classname=cell" icon="icons/cell.gif" tooltip="Create new cell" action="addComponent(this)"/>
76
		<button name="tb_add_header" property="classname=header" icon="icons/header.gif" tooltip="Create new header" action="addComponent(this)"/>
77
		<button name="tb_add_column" property="classname=column" icon="icons/column.gif" tooltip="Create new column" action="addComponent(this)"/>
78

  
79
		<!-- other -->
80
		<button name="tb_add_popupmenu" property="classname=popupmenu" icon="icons/popupmenu.gif" tooltip="Create new popupmenu" action="addComponent(this)"/>
81

  
82
		<!-- later -->
83
		<!--
84
		<button name="tb_add_bean" property="classname=bean" icon="icons/bean.gif" tooltip="Create new bean" action="addComponent(this)" enabled="false"/>
85
		-->
86

  
87
		<!-- placeholder in case there are no buttons add all -->
88
		<separator height="30" width="1"/>
89
	</panel>
90

  
91
	<!-- main workarea -->
92
	<panel left="4" right="4" weightx="1" weighty="1">
93
		<splitpane orientation="horizontal" divider="200" weightx="1" weighty="1">
94

  
95
			<!-- left splitpane: component tree and properties table -->
96
			<splitpane orientation="vertical">
97
				<panel columns="1" weightx="1" weighty="1">
98
					<tree name="tree" angle="true" line="false" selection="single" weightx="1" weighty="1" action="treeSelectionChanged()"/>
99
					<panel top="3" bottom="3" gap="2" scrollable="true">
100
						<button name="tb_edit_copy" icon="icons/edit_copy.gif" tooltip="Copy selected component to internal ThinG clipboard and system clipboard" action="menu_edit_copy()"/>
101
						<button name="tb_edit_cut" icon="icons/edit_cut.gif" tooltip="Cut selected component to internal ThinG clipboard and system clipboard" action="menu_edit_cut()"/>
102
						<button name="tb_edit_paste" icon="icons/edit_paste.gif" tooltip="Paste component from internal ThinG clipboard below selected component" action="menu_edit_paste()"/>
103
						<button name="tb_edit_delete" icon="icons/edit_delete.gif" tooltip="Remove selected component" action="menu_edit_delete()"/>
104
						<separator/>
105
						<button name="tb_edit_moveup" icon="icons/edit_moveup.gif" tooltip="Move selected component up" action="moveComponentUp()"/>
106
						<button name="tb_edit_movedown" icon="icons/edit_movedown.gif" tooltip="Move selected component down" action="moveComponentDown()"/>
107
					</panel>
108
				</panel>
109
				<panel columns="1" gap="5">
110
					<table name="props" selection="single" weightx="1" weighty="1" action="tableSelectionChanged()">
111
						<header>
112
							<column name="props_key" text="Property" width="80" sort="ascent"/>
113
							<column name="props_value" text="Value"/>
114
						</header>
115
					</table>
116
					<panel name="propedit" columns="3" gap="5" weightx="1" border="true" top="5" left="5" bottom="5" right="5">
117
						<label name="propedit_name" text=""/>
118
						<panel name="propedit_panel" gap="5" weightx="1"/>
119
						<button name="propedit_reset" text="Reset" tooltip="Reset to default value" font="10" valign="center" enabled="false" action="propEditReset()"/>
120
					</panel>
121
				</panel>
122
			</splitpane>
123

  
124
			<!-- right splitpane: preview panel -->
125
			<tabbedpane name="tabs" placement="top" selected="1" action="tabSelected(this.selected)">
126
				<!-- Attention: because of an obscure bug in Thinlet.getNextFocusable(), -->
127
				<!-- the tab "XML" must be the first one! If it is not the first panel, Thinlet -->
128
				<!-- runs into an endless loop when the user navigates from the "Preview" tab -->
129
				<!-- to the "XML" tab, trying to set the next focusable component. -->
130
				<tab text="XML" mnemonic="0">
131
					<panel weightx="1" weighty="1">
132
						<textarea name="serialize" editable="false" weightx="1" weighty="1"/>
133
					</panel>
134
				</tab>
135
				<tab text="Preview" mnemonic="0">
136
					<panel name="preview" border="true" scrollable="true" weightx="1" weighty="1"/>
137
				</tab>
138
			</tabbedpane>
139

  
140
		</splitpane>
141
	</panel>
142

  
143
	<!-- status bar at bottom -->
144
	<textfield name="statusbar" editable="false" text="ThinG" weightx="1"/>
145

  
146
</panel>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/resources/thing/generate.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!-- jEdit settings: :tabSize=4:indentSize=4:noTabs=true:folding=explicit:collapseFolds=1: -->
3

  
4
<panel columns="1"
5
    bottom="12" left="12" right="12" top="12" gap="12"
6
    init="init(cbGenerateInterface, cbGenerateHandler, cbGenerateAsThinlet, cbGenerateMain, tInterfaceName, tHandlerName, tPackageName, tOutputDir, tPreview, bOk)"
7
    weightx="1" weighty="1"
8
>
9
    <panel border="true" bottom="6" columns="3" font=" bold" gap="6" left="6" right="6" text="Generate" top="6" weightx="1">
10
        <checkbox action="checkboxChanged(this)" mnemonic="0" name="cbGenerateInterface" text="Interface for Handler class" weightx="1"/>
11
        <label for="tInterfaceName" mnemonic="1" text="Interface Name:"/>
12
        <textfield perform="textfieldChanged(this)" name="tInterfaceName" weightx="4"/>
13
        <checkbox action="checkboxChanged(this)" mnemonic="0" name="cbGenerateHandler" selected="true" text="Handler class" weightx="1"/>
14
        <label for="tHandlerName" mnemonic="1" text="Class Name:"/>
15
        <textfield perform="textfieldChanged(this)" name="tHandlerName" weightx="4"/>
16
        <panel/>
17
        <label for="tPackageName" mnemonic="0" text="Package Name:"/>
18
        <textfield perform="textfieldChanged(this)" name="tPackageName" weightx="4"/>
19
        <panel colspan="3" gap="6" weightx="1">
20
            <label for="tOutputDir" mnemonic="7" text="Output Directory:"/>
21
            <textfield name="tOutputDir" weightx="1"/>
22
            <button action="buttonOutputDirClicked()" text="..." tooltip="Select Output Directory"/>
23
        </panel>
24
    </panel>
25
    <panel border="true" bottom="6" columns="1" font=" bold" gap="6" left="6" right="6" text="Handler Options" top="6">
26
        <checkbox action="checkboxChanged(this)" mnemonic="13" name="cbGenerateAsThinlet" text="Handler is a Thinlet"/>
27
        <checkbox action="checkboxChanged(this)" mnemonic="9" name="cbGenerateMain" text="Generate main()"/>
28
    </panel>
29
    <panel border="true" bottom="6" font=" bold" gap="6" left="6" right="6" text="Preview" top="6" weightx="1" weighty="1">
30
        <textarea editable="false" font="Monospaced 11" name="tPreview" weightx="1" weighty="1"/>
31
    </panel>
32
    <panel gap="6" halign="right" weightx="1">
33
        <button action="ok()" icon="icons/ok.gif" mnemonic="0" name="bOk" text="Ok" valign="bottom" weighty="1"/>
34
        <button action="close()" icon="icons/cancel.gif" mnemonic="0" name="bCancel" text="Cancel" type="cancel" valign="bottom" weighty="1"/>
35
    </panel>
36
</panel>
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/resources/README.txt
1
Put into this folder the resources needed by your library classes.
2

  
3
This folder is added to the runtime classpath, so you can load any resources 
4
through the ClassLoader.
5

  
6
By default, into this folder you can find some examples of resource bundle 
7
property files that may be used by your library classes.
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/java/thinletcommons/ExtensionFileFilter.java
1
// jEdit settings:
2
// :tabSize=4:indentSize=4:noTabs=true:folding=explicit:collapseFolds=1:
3

  
4
package thinletcommons;
5

  
6

  
7
import java.io.File;
8

  
9

  
10
/**
11
 * A file filter for {@link FileChooser} that accepts files based on file
12
 * name endings (<i>extensions</i>).
13
 *
14
 * <p>
15
 * Note that the file filter is case sensitive. That is a file filter instance
16
 * created with <code>new ExtensionFileFilter("xml", "XML files")</code>
17
 * accepts <code>file.xml</code> but not <code>FILE.XML</code>.
18
 *
19
 * @author Dirk Moebius
20
 */
21
public class ExtensionFileFilter implements FileFilter
22
{
23

  
24
    private String extension;
25
    private String description;
26

  
27

  
28
    /**
29
     * Create a new ExceptionFileFilter.
30
     *
31
     * @param extension  the extention, for example "xml", "jpg", etc.
32
     * @param description  the description.
33
     */
34
    public ExtensionFileFilter(String extension, String description)
35
    {
36
        this.extension = "." + extension;
37
        this.description = description;
38
    }
39

  
40

  
41
    /**
42
     * Whether the given file is accepted by this filter.
43
     */
44
    public boolean accept(File file)
45
    {
46
        return file.getName().endsWith(extension);
47
    }
48

  
49

  
50
    /**
51
     * A human readable description of this file filter.
52
     */
53
    public String getDescription()
54
    {
55
        return description;
56
    }
57

  
58
}
59

  
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/java/thinletcommons/messagedialog.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!-- jEdit settings: :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: -->
3

  
4
<panel
5
	columns="2"
6
	gap="12" top="12" left="12" right="12" bottom="12"
7
	init="init(iconLabel, message, button1, button2, button3)"
8
>
9
	<label
10
		name="iconLabel"
11
		icon="/thinletcommons/icons/inform.gif"
12
		valign="top"
13
		rowspan="2"
14
	/>
15
	<textarea
16
		name="message"
17
		editable="false"
18
		border="false"
19
		wrap="true"
20
		weightx="1"
21
		weighty="1"
22
	/>
23
	<panel gap="12" halign="right">
24
		<button name="button1" text="..." action="buttonPressed(this)"/>
25
		<button name="button2" text="..." action="buttonPressed(this)"/>
26
		<button name="button3" text="..." action="buttonPressed(this)"/>
27
	</panel>
28
</panel>
29

  
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/java/thinletcommons/FileFilter.java
1
// jEdit settings:
2
// :tabSize=4:indentSize=4:noTabs=true:folding=explicit:collapseFolds=1:
3

  
4
package thinletcommons;
5

  
6

  
7
import java.io.File;
8

  
9

  
10
/**
11
 * A file filter for {@link FileChooser}.
12
 *
13
 * @author Dirk Moebius
14
 */
15
public interface FileFilter
16
{
17
    /**
18
     * Whether the given file is accepted by this filter.
19
     */
20
    public boolean accept(File file);
21

  
22
    /**
23
     * A human readable description of this file filter.
24
     */
25
    public String getDescription();
26
}
27

  
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/java/thinletcommons/ThinletDialog.java
1
// jEdit settings:
2
// :tabSize=4:indentSize=4:noTabs=true:folding=explicit:collapseFolds=1:
3

  
4
package thinletcommons;
5

  
6

  
7
import java.awt.BorderLayout;
8
import java.awt.Component;
9
import java.awt.Dialog;
10
import java.awt.Dimension;
11
import java.awt.Frame;
12
import java.awt.Graphics;
13
import java.awt.Image;
14
import java.awt.event.WindowAdapter;
15
import java.awt.event.WindowEvent;
16
import java.util.logging.Level;
17
import java.util.logging.Logger;
18

  
19
import thinlet.Thinlet;
20

  
21

  
22
/**
23
 * <code>ThinletDialog</code> is a <i>modal</i> double buffered dialog
24
 * containing a <i>thinlet</i> component.
25
 *
26
 * @author Dirk Moebius
27
 */
28
public class ThinletDialog extends Dialog
29
{
30
    //{{{ logging
31
    private static final Logger log = Logger.getLogger("thinletcommons");
32
    private static final boolean debug() { return log.isLoggable(Level.FINE); }
33
    //}}}
34

  
35

  
36
    private transient Thinlet content;
37
    private transient Image doublebuffer;
38

  
39

  
40
    public ThinletDialog(Frame owner)
41
    {
42
        super(owner, true);
43
        addWindowListener(new WindowHandler());
44
    }
45

  
46

  
47
    public ThinletDialog(Frame owner, String title)
48
    {
49
        super(owner, title, true);
50
        addWindowListener(new WindowHandler());
51
    }
52

  
53

  
54
    public ThinletDialog(Dialog owner)
55
    {
56
        super(owner);
57
        setModal(true);
58
        addWindowListener(new WindowHandler());
59
    }
60

  
61

  
62
    public ThinletDialog(Dialog owner, String title)
63
    {
64
        super(owner, title, true);
65
        addWindowListener(new WindowHandler());
66
    }
67

  
68

  
69
    public void setContent(Thinlet content)
70
    {
71
        this.content = content;
72
        removeAll();
73
        setLayout(new BorderLayout());
74
        _addImpl(content, BorderLayout.CENTER);
75
        pack();
76
    }
77

  
78

  
79
    public Thinlet getContent()
80
    {
81
        return content;
82
    }
83

  
84

  
85
    /**
86
     * Call the paint method to redraw this component without painting a
87
     * background rectangle.
88
     */
89
    public void update(Graphics g)
90
    {
91
        paint(g);
92
    }
93

  
94

  
95
    /**
96
     * Create a double buffer if needed, the <i>thinlet</i> component paints
97
     * the content.
98
     */
99
    public void paint(Graphics g)
100
    {
101
        if(doublebuffer == null)
102
        {
103
            Dimension d = getSize();
104
            doublebuffer = createImage(d.width, d.height);
105
        }
106
        Graphics dg = doublebuffer.getGraphics();
107
        dg.setClip(g.getClipBounds());
108
        super.paint(dg);
109
        dg.dispose();
110
        g.drawImage(doublebuffer, 0, 0, this);
111
    }
112

  
113

  
114
    /**
115
     * Clear the double buffer image (because the frame has been resized), the
116
     * overriden method lays out its components (centers the <i>thinlet</i>
117
     * component).
118
     */
119
    public void doLayout()
120
    {
121
        if(doublebuffer != null)
122
        {
123
            doublebuffer.flush();
124
            doublebuffer = null;
125
        }
126
        super.doLayout();
127
    }
128

  
129

  
130
    /**
131
     * Redirects all calls to <code>add(...)</code> to
132
     * {@link #setContent(Thinlet)}.
133
     */
134
    protected void addImpl(Component comp, Object constraints, int index)
135
    {
136
        setContent((Thinlet)comp);
137
    }
138

  
139

  
140
    private void _addImpl(Component comp, String constraints)
141
    {
142
        super.addImpl(comp, constraints, -1);
143
    }
144

  
145

  
146
    private class WindowHandler extends WindowAdapter
147
    {
148
        public void windowClosing(WindowEvent e)
149
        {
150
            // dialog stays visible if the thinlet returns 'false' in destroy(),
151
            // otherwise it is closed and control is returned to calling frame.
152
            setVisible(content != null && !content.destroy());
153
        }
154
    }
155

  
156
}
157

  
org.gvsig.scripting/tags/org.gvsig.scripting-2.3.224/org.gvsig.scripting.thing/src/main/java/thinletcommons/thing.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<!-- jEdit settings: :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: -->
3

  
4
<panel columns="1" gap="4">
5

  
6
	<menubar weightx="1">
7
		<menu text="File" mnemonic="0">
8
			<menuitem text="New" mnemonic="0" icon="icons/empty_menu.gif" accelerator="ctrl N" action="menu_file_new()"/>
9
			<menuitem text="Open..." mnemonic="0" icon="icons/empty_menu.gif" accelerator="ctrl O" action="menu_file_open()"/>
10
			<separator/>
11
			<menuitem text="Reload" mnemonic="0" icon="icons/empty_menu.gif" accelerator="ctrl R" action="menu_file_reload()"/>
12
			<separator/>
13
			<menuitem text="Save" mnemonic="0" icon="icons/empty_menu.gif" accelerator="ctrl S" action="menu_file_save()"/>
14
			<menuitem text="Save As..." mnemonic="5" icon="icons/empty_menu.gif" action="menu_file_save_as()"/>
15
			<separator/>
16
			<menuitem text="Exit" mnemonic="0" icon="icons/empty_menu.gif" accelerator="alt F4" action="menu_file_exit()"/>
17
		</menu>
18
		<menu text="Edit" mnemonic="0">
19
			<menuitem text="Cut" name="menu_edit_cut" mnemonic="0" accelerator="ctrl X" icon="icons/edit_cut.gif" action="menu_edit_cut()"/>
20
			<menuitem text="Copy" name="menu_edit_copy" mnemonic="1" accelerator="ctrl C" icon="icons/edit_copy.gif" action="menu_edit_copy()"/>
21
			<menuitem text="Paste" name="menu_edit_paste" mnemonic="0" accelerator="ctrl V" icon="icons/edit_paste.gif" action="menu_edit_paste()"/>
22
			<menuitem text="Paste from system clipboard" name="menu_edit_paste_systemcb" mnemonic="1" accelerator="ctrl shift V" icon="icons/empty_menu.gif" action="menu_edit_paste_systemcb()"/>
23
			<menuitem text="Delete" name="menu_edit_delete" mnemonic="0" icon="icons/edit_delete.gif" action="menu_edit_delete()"/>
24
			<separator/>
25
			<menuitem text="Settings..." mnemonic="0" icon="icons/empty_menu.gif" action="menu_edit_settings()"/>
26
		</menu>
27
		<menu text="Tools" mnemonic="0">
28
			<menuitem text="Generate Handler Stub Source..." name="menu_tools_generate" mnemonic="0" accelerator="ctrl G" icon="icons/empty_menu.gif" action="menu_tools_generate()"/>
29
		</menu>
30
		<menu text="Help" mnemonic="0">
31
			<menuitem text="About Thing..." mnemonic="0" icon="icons/thing_small.gif" action="menu_help_about()"/>
32
		</menu>
33
	</menubar>
34

  
35
	<panel name="toolbar" weightx="1" gap="-1">
36

  
37
		<!-- top level components -->
38
		<button name="tb_add_panel" property="classname=panel" icon="icons/panel.gif" tooltip="Create new panel" action="addComponent(this)"/>
39
		<button name="tb_add_dialog" property="classname=dialog" icon="icons/dialog.gif" tooltip="Create new dialog" action="addComponent(this)"/>
40
		<button name="tb_add_desktop" property="classname=desktop" icon="icons/desktop.gif" tooltip="Create new desktop" action="addComponent(this)"/>
41
		<button name="tb_add_splitpane" property="classname=splitpane" icon="icons/splitpane.gif" tooltip="Create new splitpane" action="addComponent(this)"/>
42
		<button name="tb_add_tabbedpane" property="classname=tabbedpane" icon="icons/tabbedpane.gif" tooltip="Create new tabbedpane" action="addComponent(this)"/>
43

  
44
		<!-- menu components -->
45
		<button name="tb_add_menubar" property="classname=menubar" icon="icons/menubar.gif" tooltip="Create new menubar" action="addComponent(this)"/>
46
		<button name="tb_add_menu" property="classname=menu" icon="icons/menu.gif" tooltip="Create new menu" action="addComponent(this)"/>
47
		<button name="tb_add_menuitem" property="classname=menuitem" icon="icons/menuitem.gif" tooltip="Create new menuitem" action="addComponent(this)"/>
48
		<button name="tb_add_checkboxmenuitem" property="classname=checkboxmenuitem" icon="icons/checkboxmenuitem.gif" tooltip="Create new checkboxmenuitem" action="addComponent(this)"/>
49

  
50
		<!-- components -->
51
		<button name="tb_add_label" property="classname=label" icon="icons/label.gif" tooltip="Create new label" action="addComponent(this)"/>
52
		<button name="tb_add_button" property="classname=button" icon="icons/button.gif" tooltip="Create new button" action="addComponent(this)"/>
53
		<button name="tb_add_togglebutton" property="classname=togglebutton" icon="icons/togglebutton.gif" tooltip="Create new togglebutton" action="addComponent(this)"/>
54
		<button name="tb_add_checkbox" property="classname=checkbox" icon="icons/checkbox.gif" tooltip="Create new checkbox" action="addComponent(this)"/>
55
		<button name="tb_add_textfield" property="classname=textfield" icon="icons/textfield.gif" tooltip="Create new textfield" action="addComponent(this)"/>
56
		<button name="tb_add_combobox" property="classname=combobox" icon="icons/combobox.gif" tooltip="Create new combobox" action="addComponent(this)"/>
57
		<button name="tb_add_passwordfield" property="classname=passwordfield" icon="icons/passwordfield.gif" tooltip="Create new passwordfield" action="addComponent(this)"/>
58
		<button name="tb_add_spinbox" property="classname=spinbox" icon="icons/spinbox.gif" tooltip="Create new spinbox" action="addComponent(this)"/>
59
		<button name="tb_add_progressbar" property="classname=progressbar" icon="icons/progressbar.gif" tooltip="Create new progressbar" action="addComponent(this)"/>
60
		<button name="tb_add_slider" property="classname=slider" icon="icons/slider.gif" tooltip="Create new slider" action="addComponent(this)"/>
61
		<button name="tb_add_separator" property="classname=separator" icon="icons/separator.gif" tooltip="Create new separator" action="addComponent(this)"/>
62
		<button name="tb_add_list" property="classname=list" icon="icons/list.gif" tooltip="Create new list" action="addComponent(this)"/>
63
		<button name="tb_add_table" property="classname=table" icon="icons/table.gif" tooltip="Create new table" action="addComponent(this)"/>
64
		<button name="tb_add_textarea" property="classname=textarea" icon="icons/textarea.gif" tooltip="Create new textarea" action="addComponent(this)"/>
65
		<button name="tb_add_tree" property="classname=tree" icon="icons/tree.gif" tooltip="Create new tree" action="addComponent(this)"/>
66

  
67
		<!-- list items -->
68
		<button name="tb_add_choice" property="classname=choice" icon="icons/choice.gif" tooltip="Create new choice" action="addComponent(this)"/>
69
		<button name="tb_add_item" property="classname=item" icon="icons/item.gif" tooltip="Create new item" action="addComponent(this)"/>
70
		<button name="tb_add_node" property="classname=node" icon="icons/node.gif" tooltip="Create new node" action="addComponent(this)"/>
71
		<button name="tb_add_tab" property="classname=tab" icon="icons/tab.gif" tooltip="Create new tab" action="addComponent(this)"/>
72

  
73
		<!-- table components -->
74
		<button name="tb_add_row" property="classname=row" icon="icons/row.gif" tooltip="Create new row" action="addComponent(this)"/>
75
		<button name="tb_add_cell" property="classname=cell" icon="icons/cell.gif" tooltip="Create new cell" action="addComponent(this)"/>
76
		<button name="tb_add_header" property="classname=header" icon="icons/header.gif" tooltip="Create new header" action="addComponent(this)"/>
77
		<button name="tb_add_column" property="classname=column" icon="icons/column.gif" tooltip="Create new column" action="addComponent(this)"/>
78

  
79
		<!-- other -->
80
		<button name="tb_add_popupmenu" property="classname=popupmenu" icon="icons/popupmenu.gif" tooltip="Create new popupmenu" action="addComponent(this)"/>
81

  
82
		<!-- later -->
83
		<!--
84
		<button name="tb_add_bean" property="classname=bean" icon="icons/bean.gif" tooltip="Create new bean" action="addComponent(this)" enabled="false"/>
85
		-->
86

  
87
		<!-- placeholder in case there are no buttons add all -->
88
		<separator height="30" width="1"/>
89
	</panel>
90

  
91
	<!-- main workarea -->
92
	<panel left="4" right="4" weightx="1" weighty="1">
93
		<splitpane orientation="horizontal" divider="200" weightx="1" weighty="1">
94

  
95
			<!-- left splitpane: component tree and properties table -->
96
			<splitpane orientation="vertical">
97
				<panel columns="1" weightx="1" weighty="1">
98
					<tree name="tree" angle="true" line="false" selection="single" weightx="1" weighty="1" action="treeSelectionChanged()"/>
99
					<panel top="3" bottom="3" gap="2" scrollable="true">
100
						<button name="tb_edit_copy" icon="icons/edit_copy.gif" tooltip="Copy selected component to internal ThinG clipboard and system clipboard" action="menu_edit_copy()"/>
101
						<button name="tb_edit_cut" icon="icons/edit_cut.gif" tooltip="Cut selected component to internal ThinG clipboard and system clipboard" action="menu_edit_cut()"/>
102
						<button name="tb_edit_paste" icon="icons/edit_paste.gif" tooltip="Paste component from internal ThinG clipboard below selected component" action="menu_edit_paste()"/>
103
						<button name="tb_edit_delete" icon="icons/edit_delete.gif" tooltip="Remove selected component" action="menu_edit_delete()"/>
104
						<separator/>
105
						<button name="tb_edit_moveup" icon="icons/edit_moveup.gif" tooltip="Move selected component up" action="moveComponentUp()"/>
106
						<button name="tb_edit_movedown" icon="icons/edit_movedown.gif" tooltip="Move selected component down" action="moveComponentDown()"/>
107
					</panel>
108
				</panel>
109
				<panel columns="1" gap="5">
110
					<table name="props" selection="single" weightx="1" weighty="1" action="tableSelectionChanged()">
111
						<header>
112
							<column name="props_key" text="Property" width="80" sort="ascent"/>
113
							<column name="props_value" text="Value"/>
114
						</header>
115
					</table>
116
					<panel name="propedit" columns="3" gap="5" weightx="1" border="true" top="5" left="5" bottom="5" right="5">
117
						<label name="propedit_name" text=""/>
118
						<panel name="propedit_panel" gap="5" weightx="1"/>
119
						<button name="propedit_reset" text="Reset" tooltip="Reset to default value" font="10" valign="center" enabled="false" action="propEditReset()"/>
120
					</panel>
121
				</panel>
122
			</splitpane>
123

  
124
			<!-- right splitpane: preview panel -->
125
			<tabbedpane name="tabs" placement="top" selected="1" action="tabSelected(this.selected)">
126
				<!-- Attention: because of an obscure bug in Thinlet.getNextFocusable(), -->
127
				<!-- the tab "XML" must be the first one! If it is not the first panel, Thinlet -->
128
				<!-- runs into an endless loop when the user navigates from the "Preview" tab -->
129
				<!-- to the "XML" tab, trying to set the next focusable component. -->
130
				<tab text="XML" mnemonic="0">
131
					<panel weightx="1" weighty="1">
132
						<textarea name="serialize" editable="false" weightx="1" weighty="1"/>
133
					</panel>
134
				</tab>
135
				<tab text="Preview" mnemonic="0">
136
					<panel name="preview" border="true" scrollable="true" weightx="1" weighty="1"/>
137
				</tab>
138
			</tabbedpane>
139

  
140
		</splitpane>
141
	</panel>
142

  
143
	<!-- status bar at bottom -->
144
	<textfield name="statusbar" editable="false" text="ThinG" weightx="1"/>
145

  
146
</panel>
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff