Revision 1573

View differences:

org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.main/src/main/resources/log4j.xml
1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!--
3

  
4
    gvSIG. Desktop Geographic Information System.
5

  
6
    Copyright (C) 2007-2013 gvSIG Association.
7

  
8
    This program is free software; you can redistribute it and/or
9
    modify it under the terms of the GNU General Public License
10
    as published by the Free Software Foundation; either version 2
11
    of the License, or (at your option) any later version.
12

  
13
    This program is distributed in the hope that it will be useful,
14
    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
    GNU General Public License for more details.
17

  
18
    You should have received a copy of the GNU General Public License
19
    along with this program; if not, write to the Free Software
20
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21
    MA  02110-1301, USA.
22

  
23
    For any additional information, do not hesitate to contact us
24
    at info AT gvsig.com, or visit our website www.gvsig.com.
25

  
26
-->
27
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
28

  
29
<!-- 
30
Log4J configuration file for unit tests execution.
31
 -->
32
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
33

  
34
	<!-- Appender configuration to show logging messages through the console -->
35
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
36
		<layout class="org.apache.log4j.PatternLayout">
37
			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{2}.%M()]\n  %m%n" />
38
		</layout>
39
	</appender>
40

  
41
	<!-- 
42
	Activate logging messages of DEBUG level of higher only for the
43
	org.gvsig.tools packages.
44
	You can put full classes names or packages instead, to configure
45
	logging for all the classes and subpackages of the package.
46
	-->
47
	<category name="org.gvsig.tools">
48
		<priority value="DEBUG" />
49
	</category>
50

  
51
	<!-- 
52
	By default, show only logging messages of INFO level or higher, 
53
	through the previously configured CONSOLE appender. 
54
	-->
55
	<root>
56
		<priority value="INFO" />
57
		<appender-ref ref="CONSOLE" />
58
	</root>
59
</log4j:configuration>
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.main/src/main/java/org/gvsig/tools/main/README.txt
1
====
2
    gvSIG. Desktop Geographic Information System.
3

  
4
    Copyright (C) 2007-2013 gvSIG Association.
5

  
6
    This program is free software; you can redistribute it and/or
7
    modify it under the terms of the GNU General Public License
8
    as published by the Free Software Foundation; either version 2
9
    of the License, or (at your option) any later version.
10

  
11
    This program is distributed in the hope that it will be useful,
12
    but WITHOUT ANY WARRANTY; without even the implied warranty of
13
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
    GNU General Public License for more details.
15

  
16
    You should have received a copy of the GNU General Public License
17
    along with this program; if not, write to the Free Software
18
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
    MA  02110-1301, USA.
20

  
21
    For any additional information, do not hesitate to contact us
22
    at info AT gvsig.com, or visit our website www.gvsig.com.
23
====
24

  
25
To add a new tab to the application, perform the following steps:
26

  
27
- Create a new class extending the MainAction class, implementing the methods:
28

  
29
  - createComponent(): create your demo panel
30
  
31
  - getComponentTitle(): return the name of the panel
32
  
33
- Add your new action class to the list of actions in the Main.createActions()
34
  method. 
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.main/src/main/java/org/gvsig/tools/main/MainAction.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
/*
25
 * AUTHORS (In addition to CIT):
26
 * 2010 {}  {{Task}}
27
 */
28
package org.gvsig.tools.main;
29

  
30
import java.awt.event.ActionEvent;
31

  
32
import javax.swing.AbstractAction;
33
import javax.swing.Icon;
34
import javax.swing.JComponent;
35
import javax.swing.JTabbedPane;
36

  
37
/**
38
 * @author 2010- C?sar Ordi?ana - gvSIG team
39
 */
40
public abstract class MainAction extends AbstractAction {
41

  
42
    private static final long serialVersionUID = 7286136693329716214L;
43
    private final JTabbedPane tabbedPane;
44

  
45
    /**
46
     * @see AbstractAction#AbstractAction()
47
     */
48
    public MainAction(JTabbedPane tabbedPane) {
49
        super(); 
50
        this.tabbedPane = tabbedPane;
51
    }
52

  
53
    /**
54
     * @see AbstractAction#AbstractAction(String)
55
     */
56
    public MainAction(String name, JTabbedPane tabbedPane) {
57
        super(name);
58
        this.tabbedPane = tabbedPane;
59
    }
60

  
61
    /**
62
     * @see AbstractAction#AbstractAction(String, Icon)
63
     */
64
    public MainAction(String name, Icon icon, JTabbedPane tabbedPane) {
65
        super(name, icon);
66
        this.tabbedPane = tabbedPane;
67
    }
68

  
69
    public void actionPerformed(ActionEvent e) {
70
        String title = getComponentTitle();
71
        int index = tabbedPane.indexOfTab(title);
72
        if (index <= -1) {
73
            tabbedPane.addTab(title, createComponent());
74
            index = tabbedPane.indexOfTab(title);
75
        }
76
        tabbedPane.setSelectedIndex(index);
77
    }
78

  
79
    protected abstract JComponent createComponent();
80

  
81
    protected abstract String getComponentTitle();
82

  
83
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.main/src/main/java/org/gvsig/tools/main/Main.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.tools.main;
25

  
26
import java.awt.BorderLayout;
27
import java.awt.Dimension;
28
import java.awt.event.ActionEvent;
29
import java.awt.event.ActionListener;
30

  
31
import javax.swing.JButton;
32
import javax.swing.JFrame;
33
import javax.swing.JMenu;
34
import javax.swing.JMenuBar;
35
import javax.swing.JMenuItem;
36
import javax.swing.JTabbedPane;
37
import javax.swing.JToolBar;
38
import javax.swing.WindowConstants;
39

  
40
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
41
import org.gvsig.tools.main.taskstatus.JTaskStatusAction;
42
import org.gvsig.tools.main.usability.UsabilityAction;
43
import org.gvsig.tools.main.window.ModalAction;
44

  
45
/**
46
 * @author 2010- C?sar Ordi?ana - gvSIG team
47
 */
48
public class Main {
49

  
50
    private JTabbedPane tabbedPane;
51
    private JMenuBar menuBar;
52
    private JToolBar toolBar; 
53

  
54
    public static void main(String args[]) {
55
        new DefaultLibrariesInitializer().fullInitialize();
56
        Main main = new Main();
57
        main.show();
58
    }
59

  
60
    public void show() {
61

  
62
        final JFrame frame = new JFrame("Tools swing components test app");
63
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
64

  
65
        // Add a tabbed pane as a content pane
66
        tabbedPane = new JTabbedPane();
67
        tabbedPane.setTabPlacement(JTabbedPane.BOTTOM);
68
        frame.getContentPane().add(tabbedPane);
69

  
70
        // Create application actions
71
        MainAction[] actions = createActions();
72

  
73
        // Create the menu bar.
74
        menuBar = new JMenuBar();
75

  
76
        // Build the menu.
77
        JMenu menuFile = new JMenu("File");
78
        JMenuItem menuItemExit = new JMenuItem("Exit");
79
        menuItemExit.addActionListener(new ActionListener() {
80

  
81
            public void actionPerformed(ActionEvent e) {
82
                frame.dispose();
83
                System.exit(0);
84
            }
85
        });
86
        menuFile.add(menuItemExit);
87
        menuBar.add(menuFile);
88

  
89
        // Add all actions to the menu bar
90
        JMenu menuDemo = new JMenu("Tools components");
91
        for (int i = 0; i < actions.length; i++) {
92
            menuDemo.add(new JMenuItem(actions[i]));
93
        }
94
        menuBar.add(menuDemo);
95

  
96
        // Build the toolbar
97
        toolBar = new JToolBar("Main toolbar");
98

  
99
        // Add all actions to the toolbar
100
        for (int i = 0; i < actions.length; i++) {
101
            toolBar.add(new JButton(actions[i]));
102
        }
103

  
104
        frame.setPreferredSize(new Dimension(800, 600));
105

  
106
        frame.setJMenuBar(menuBar);
107
        frame.add(toolBar, BorderLayout.PAGE_START);
108

  
109
        // Display the window.
110
        frame.pack();
111
        frame.setVisible(true);
112
    }
113

  
114
    private MainAction[] createActions() {
115
        return new MainAction[] { 
116
            new UsabilityAction(tabbedPane),
117
            new JTaskStatusAction(tabbedPane),
118
            new ModalAction(tabbedPane)
119
        };
120
    }
121

  
122
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.main/src/main/java/org/gvsig/tools/main/usability/UsabilityAction.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
/*
25
 * AUTHORS (In addition to CIT):
26
 * 2010 {}  {{Task}}
27
 */
28
package org.gvsig.tools.main.usability;
29

  
30
import java.awt.Component;
31

  
32
import javax.swing.BoxLayout;
33
import javax.swing.JButton;
34
import javax.swing.JComponent;
35
import javax.swing.JPanel;
36
import javax.swing.JSpinner;
37
import javax.swing.JTabbedPane;
38
import javax.swing.JTextArea;
39

  
40
import org.gvsig.tools.dataTypes.DataTypes;
41
import org.gvsig.tools.main.MainAction;
42
import org.gvsig.tools.swing.api.ToolsSwingLocator;
43
import org.gvsig.tools.swing.api.usability.UsabilitySwingManager;
44

  
45
/**
46
 * Shows the panel of usability components.
47
 * 
48
 * @author 2010- C?sar Ordi?ana - gvSIG team 
49
 */
50
public class UsabilityAction extends MainAction {
51

  
52
    private static final long serialVersionUID = 6471916708466720365L;
53

  
54
    private static final UsabilitySwingManager manager =
55
        ToolsSwingLocator.getUsabilitySwingManager();
56

  
57
    /**
58
     * @see MainAction#MainAction(JTabbedPane)
59
     */
60
    public UsabilityAction(JTabbedPane tabbedPane) {
61
        super("Usability", tabbedPane);
62
        putValue(SHORT_DESCRIPTION, "Usability components");
63
    }
64

  
65
    @Override
66
    protected JComponent createComponent() {
67
        JTabbedPane tabbedPane = new JTabbedPane();
68
        tabbedPane.setTabPlacement(JTabbedPane.RIGHT);
69

  
70
        tabbedPane.addTab("JButton", createJButtonComponent());
71
        tabbedPane.addTab("JTextArea", createJTextAreaComponent());
72
        tabbedPane.addTab("JNullSpinner", createJNullSpinnerComponent());
73
        return tabbedPane;
74
    }
75

  
76
    @Override
77
    protected String getComponentTitle() {
78
        return "Usability";
79
    }
80

  
81
    private Component createJButtonComponent() {
82
        // Create the container panel
83
        JPanel panel = new JPanel();
84
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
85
        // panel.setLayout(new GridLayout(18, 1));
86
        // panel.setLayout(new );
87
        JButton button = manager.createJButton("+");
88
        panel.add(button); 
89
        button = manager.createJButton("-");
90
        panel.add(button);
91
        button = manager.createJToolButton("+");
92
        panel.add(button); 
93
        button = manager.createJToolButton("-");
94
        panel.add(button);
95
        // Create buttons with different sizes
96
        StringBuffer text = new StringBuffer("012");
97
        for (int i = 4; i < 22; i++) {
98
            text.append(String.valueOf(i % 10));
99
            button = manager.createJButton(text.toString());
100
            panel.add(button);
101
        }
102

  
103
        return panel;
104
    }
105

  
106
    private Component createJTextAreaComponent() {
107
        // Create the container panel
108
        JPanel panel = new JPanel();
109
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
110
        // panel.setLayout(new GridLayout(18, 1));
111
        // panel.setLayout(new );
112
        JTextArea ta = manager.createJTextArea("");       
113
        ta = manager.createJTextArea("test");
114
        panel.add(ta); 
115
        ta = manager.createJTextArea("test longer");
116
        panel.add(ta);
117
        ta = manager.createJTextArea("test much longer");
118
        panel.add(ta); 
119
        ta = manager.createJTextArea("test");
120
        panel.add(ta); 
121
        ta = manager.createJTextArea("test size = 150", 150);
122
        panel.add(ta); 
123
        ta = manager.createJTextArea("test too long", -1);
124
        panel.add(ta);
125
        // Create buttons with different sizes
126
        StringBuffer text = new StringBuffer("012");
127
        for (int i = 4; i < 22; i++) {
128
            text.append(String.valueOf(i % 10));
129
            ta = manager.createJTextArea(text.toString());
130
            panel.add(ta);
131
        }
132
   
133
        
134
        return panel;
135
    }
136

  
137
    private Component createJNullSpinnerComponent() {
138
        // Create the container panel
139
        JPanel panel = new JPanel();
140
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
141
        // panel.setLayout(new GridLayout(18, 1));
142
        // panel.setLayout(new );
143
        JSpinner spinner = manager.createJNullSpinner(DataTypes.FLOAT, "1.05", -1);
144
        panel.add(spinner);
145
        // Create buttons with different sizes
146
        StringBuffer text = new StringBuffer("01287.");
147
        for (int i = 4; i < 22; i++) {
148
            text.append(String.valueOf(i % 10));
149
            spinner = manager.createJNullSpinner(DataTypes.FLOAT, text.toString(), -1);
150
            panel.add(spinner);
151
        }
152

  
153
        return panel;
154
    }
155

  
156
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.main/src/main/java/org/gvsig/tools/main/taskstatus/JTaskStatusAction.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.tools.main.taskstatus;
25

  
26
import java.awt.Color;
27
import java.awt.FlowLayout;
28

  
29
import javax.swing.JComponent;
30
import javax.swing.JPanel;
31
import javax.swing.JTabbedPane;
32

  
33
import org.gvsig.tools.main.MainAction;
34
import org.gvsig.tools.swing.api.ToolsSwingLocator;
35
import org.gvsig.tools.swing.api.task.JTaskStatus;
36
import org.gvsig.tools.swing.api.task.JTasksStatus;
37
import org.gvsig.tools.swing.api.task.TaskStatusSwingManager;
38
import org.gvsig.tools.task.AbstractMonitorableTask;
39

  
40
public class JTaskStatusAction extends MainAction {
41

  
42
	/**
43
	 * 
44
	 */
45
	private static final long serialVersionUID = -5408828606365712614L;
46

  
47
	public JTaskStatusAction(JTabbedPane tabbedPane) {
48
		super("Task status", tabbedPane);
49
        putValue(SHORT_DESCRIPTION, "Task status");
50
	}
51

  
52
	private class MiTask extends AbstractMonitorableTask {
53
		
54
		private int max;
55
		private int sleepInterval;
56
		
57
		public MiTask(String tittle, int max, int sleepInterval) {
58
			super(tittle);
59
			this.max = max;
60
			this.sleepInterval = sleepInterval;
61
		}
62
		public MiTask(String tittle, int max) {
63
			this(tittle, max, 100);
64
		}
65
		public void run() {
66
			this.taskStatus.setRangeOfValues(0, this.max);
67
			for(int i=0; i<this.max; i++ ) {
68
				this.taskStatus.setCurValue(i);
69
				try {
70
					Thread.sleep(sleepInterval);
71
				} catch (InterruptedException e) {
72
					// Ignore
73
				}
74
				if( this.taskStatus.isCancellationRequested() ) {
75
					this.taskStatus.cancel();
76
					break;
77
				}
78
			}
79
			if( this.taskStatus.isRunning() ) {
80
				this.taskStatus.terminate();
81
			}
82
		}
83
	}
84
	
85
	protected JComponent createComponent() {
86
		TaskStatusSwingManager manager = ToolsSwingLocator.getTaskStatusSwingManager();
87
		JPanel panel = new JPanel();
88
		panel.setLayout( new FlowLayout());
89
		JTasksStatus tasks = manager.createJTasksStatus();
90
		tasks.setBackground(Color.BLUE.brighter());
91
		panel.add( tasks );
92
		JTaskStatus taskStatusPanel = manager.createJTaskStatus();
93
		panel.add( taskStatusPanel );
94
		
95
		MiTask task1 = new MiTask("Task1",100);
96
		task1.start();
97
		MiTask task2 = new MiTask("Task2",300);
98
		task2.start();
99
		MiTask task3 = new MiTask("Task3",1000);
100
		task3.start();
101
		MiTask task4 = new MiTask("Task4",50,5000);
102
		task4.start();
103

  
104
		taskStatusPanel.bind(task1.getTaskStatus());
105
		return panel;
106
	}
107

  
108
	protected String getComponentTitle() {
109
		return "Task status";
110
	}
111

  
112
}
0 113

  
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.main/src/main/java/org/gvsig/tools/main/window/ModalAction.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
/*
25
 * AUTHORS (In addition to CIT):
26
 * 2010 {}  {{Task}}
27
 */
28
package org.gvsig.tools.main.window;
29

  
30
import java.awt.Dimension;
31
import java.awt.FlowLayout;
32
import java.awt.event.ActionEvent;
33
import java.beans.PropertyChangeListener;
34

  
35
import javax.swing.Action;
36
import javax.swing.JButton;
37
import javax.swing.JComponent;
38
import javax.swing.JPanel;
39
import javax.swing.JTabbedPane;
40
import javax.swing.JTextArea;
41
import javax.swing.JTextField;
42

  
43
import org.gvsig.tools.main.MainAction;
44
import org.gvsig.tools.swing.api.ToolsSwingLocator;
45
import org.gvsig.tools.swing.api.windowmanager.WindowManager;
46

  
47
/**
48
 * Shows the panel of usability components.
49
 * 
50
 * @author 2010- C?sar Ordi?ana - gvSIG team 
51
 */
52
public class ModalAction extends MainAction {
53

  
54

  
55
    private static final WindowManager manager =
56
        ToolsSwingLocator.getWindowManager();
57

  
58
    /**
59
     * @see MainAction#MainAction(JTabbedPane)
60
     */
61
    public ModalAction(JTabbedPane tabbedPane) {
62
        super("Modal", tabbedPane);
63
        putValue(SHORT_DESCRIPTION, "Modal components");
64
    }
65

  
66
    @Override
67
    protected JComponent createComponent() {
68
        JPanel panel = new JPanel();
69
        panel.setLayout(new FlowLayout());
70
        JButton button = new JButton(new Action() {
71
			
72
			public void actionPerformed(ActionEvent arg0) {
73
				JTextField jtext = new JTextField();
74
				jtext.setPreferredSize(new Dimension(300, 30));
75
				
76
				JPanel auxpanel = new JPanel();
77
				auxpanel.add(jtext);
78
				WindowManager wm = ToolsSwingLocator.getWindowManager();
79
				wm.showWindow(auxpanel, "HOLA", WindowManager.MODE.DIALOG);
80
				System.out.println("Value = "+jtext.getText());
81
			}
82
			
83
			public void setEnabled(boolean b) {
84
				// TODO Auto-generated method stub
85
				
86
			}
87
			
88
			public void removePropertyChangeListener(PropertyChangeListener listener) {
89
				// TODO Auto-generated method stub
90
				
91
			}
92
			
93
			public void putValue(String key, Object value) {
94
				// TODO Auto-generated method stub
95
				
96
			}
97
			
98
			public boolean isEnabled() {
99
				return true;
100
			}
101
			
102
			public Object getValue(String key) {
103
				// TODO Auto-generated method stub
104
				return null;
105
			}
106
			
107
			public void addPropertyChangeListener(PropertyChangeListener listener) {
108
				// TODO Auto-generated method stub
109
				
110
			}
111
		});
112
        button.setText("Show modal window");
113
        panel.add(button);
114

  
115
        return panel;
116
    }
117

  
118
    @Override
119
    protected String getComponentTitle() {
120
        return "Modal";
121
    }
122

  
123
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.main/src/test/java/org/gvsig/tools/main/AppTest.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.tools.main;
25

  
26
import junit.framework.Test;
27
import junit.framework.TestCase;
28
import junit.framework.TestSuite;
29

  
30
/**
31
 * Unit test for simple App.
32
 */
33
public class AppTest extends TestCase {
34

  
35
    /**
36
     * @return the suite of tests being tested
37
     */
38
    public static Test suite() {
39
        return new TestSuite(AppTest.class);
40
    }
41

  
42
    /**
43
     * Create the test case
44
     * 
45
     * @param testName
46
     *            name of the test case
47
     */
48
    public AppTest(String testName) {
49
        super(testName);
50
    }
51

  
52
    /**
53
     * Rigourous Test :-)
54
     */
55
    public void testApp() {
56
        assertTrue(true);
57
    }
58
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.main/pom.xml
1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
2
    <modelVersion>4.0.0</modelVersion>
3
    <artifactId>org.gvsig.tools.main</artifactId>
4
    <packaging>jar</packaging>
5
    <name>org.gvsig.tools.main</name>
6
    <parent>
7
        <groupId>org.gvsig</groupId>
8
        <artifactId>org.gvsig.tools</artifactId>
9
        <version>3.0.122</version>
10
    </parent>
11
    <dependencies>
12
        <dependency>
13
            <groupId>org.gvsig</groupId>
14
            <artifactId>org.gvsig.tools.lib</artifactId>
15
        </dependency>
16
        <dependency>
17
            <groupId>org.gvsig</groupId>
18
            <artifactId>org.gvsig.tools.swing.api</artifactId>
19
        </dependency>
20
       <dependency>
21
            <groupId>org.gvsig</groupId>
22
            <artifactId>org.gvsig.tools.swing.impl</artifactId>
23
            <scope>runtime</scope>
24
        </dependency>
25
   </dependencies>
26
</project>
0 27

  
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/observer/impl/BaseWeakReferencingObservableTest.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
/*
25
 * AUTHORS (In addition to CIT):
26
 * 2008 {DiSiD Technologies}  {{Task}}
27
 */
28
package org.gvsig.tools.observer.impl;
29

  
30
import java.lang.ref.WeakReference;
31
import java.util.ArrayList;
32
import java.util.List;
33
import java.util.Random;
34

  
35
import junit.framework.TestCase;
36

  
37
import org.easymock.MockControl;
38

  
39
import org.gvsig.tools.observer.Observable;
40
import org.gvsig.tools.observer.Observer;
41

  
42
/**
43
 * Unit tests for the {@link BaseWeakReferencingObservable} class.
44
 *
45
 * @author <a href="mailto:cordin@disid.com">C?sar Ordi?ana</a>
46
 */
47
public class BaseWeakReferencingObservableTest extends TestCase {
48

  
49
    private BaseWeakReferencingObservable observable;
50
    private MockControl obsControl;
51
    private Observer observer;
52

  
53
    protected void setUp() throws Exception {
54
        super.setUp();
55
        observable = new BaseWeakReferencingObservable();
56
        obsControl = MockControl.createStrictControl(Observer.class);
57
        observer = (Observer) obsControl.getMock();
58
    }
59

  
60
    protected void tearDown() throws Exception {
61
        super.tearDown();
62
    }
63

  
64
    /**
65
     * Test method for
66
     * {@link org.gvsig.tools.observer.impl.BaseWeakReferencingObservable#enableNotifications()}
67
     * .
68
     */
69
    public void testEnableNotifications() {
70
        observer.update(observable, null);
71
        obsControl.replay();
72

  
73
        observable.addObserver(observer);
74
        observable.enableNotifications();
75
        observable.notifyObservers();
76

  
77
        obsControl.verify();
78
    }
79

  
80
    /**
81
     * Test method for {@link org.gvsig.tools.observer.impl.BaseWeakReferencingObservable#dis}.
82
     */
83
    public void testDisableNotifications() {
84
        // The observer must not be notified
85
        obsControl.replay();
86

  
87
        observable.addObserver(observer);
88
        observable.disableNotifications();
89
        observable.notifyObservers();
90

  
91
        obsControl.verify();
92
    }
93

  
94
    /**
95
     * Test method for
96
     * {@link org.gvsig.tools.observer.impl.BaseWeakReferencingObservable#isEnabledNotifications()}
97
     * .
98
     */
99
    public void testIsEnabledNotifications() {
100
        assertTrue(observable.isEnabledNotifications());
101

  
102
        observable.disableNotifications();
103
        assertFalse(observable.isEnabledNotifications());
104

  
105
        observable.enableNotifications();
106
        assertTrue(observable.isEnabledNotifications());
107
    }
108

  
109
    /**
110
     * Test method for
111
     * {@link org.gvsig.tools.observer.impl.BaseWeakReferencingObservable#addObserver(org.gvsig.tools.observer.Observer)}
112
     * .
113
     */
114
    public void testAddObserverObserver() {
115
        assertEquals(0, observable.countObservers());
116
        observable.addObserver(observer);
117
        assertEquals(1, observable.countObservers());
118
        observable.addObserver(observer);
119
        assertEquals(1, observable.countObservers());
120
    }
121

  
122
    /**
123
     * Test method for
124
     * {@link org.gvsig.tools.observer.impl.BaseWeakReferencingObservable#addObserver(java.lang.ref.Reference)}
125
     * .
126
     */
127
    public void testAddObserverReference() {
128
        assertEquals(0, observable.countObservers());
129
        observable.addObserver(new WeakReference(observer));
130
        assertEquals(1, observable.countObservers());
131
        observable.addObserver(new WeakReference(observer));
132
        assertEquals(1, observable.countObservers());
133
    }
134

  
135
    /**
136
     * Test method for
137
     * {@link org.gvsig.tools.observer.impl.BaseObservable#addObservers(org.gvsig.tools.observer.impl.BaseObservable)}
138
     * .
139
     */
140
    // public void testAddObservers() {
141
    // fail("Not yet implemented");
142
    // }
143
    /**
144
     * Test method for
145
     * {@link org.gvsig.tools.observer.impl.BaseWeakReferencingObservable#deleteObserver(org.gvsig.tools.observer.Observer)}
146
     * .
147
     */
148
    public void testDeleteObserverObserver() {
149
        observable.addObserver(observer);
150
        assertEquals(1, observable.countObservers());
151
        observable.deleteObserver(observer);
152
        assertEquals(0, observable.countObservers());
153
    }
154

  
155
    /**
156
     * Test method for
157
     * {@link org.gvsig.tools.observer.impl.BaseWeakReferencingObservable#deleteObserver(java.lang.ref.Reference)}
158
     * .
159
     */
160
    public void testDeleteObserverReference() {
161
        observable.addObserver(new WeakReference(observer));
162
        assertEquals(1, observable.countObservers());
163
        observable.deleteObserver(new WeakReference(observer));
164
        assertEquals(0, observable.countObservers());
165
    }
166

  
167
	/**
168
	 * Test method for complex notification management. .
169
	 */
170
    public void testComplexNotification() {
171
		TestObserver observer = new TestObserver();
172
		observable.addObserver(observer);
173
    	
174
		assertFalse(observable.inComplex());
175

  
176
        observable.beginComplexNotification();
177
		assertTrue(observable.inComplex());
178
        observable.beginComplexNotification();
179
		assertTrue(observable.inComplex());
180
        observable.beginComplexNotification();
181
		assertTrue(observable.inComplex());
182
        
183
		observable.endComplexNotification();
184
		assertTrue(observable.inComplex());
185
		observable.endComplexNotification();
186
		assertTrue(observable.inComplex());
187
        
188
        observer.setMustBeNotified(true);
189
		observable.endComplexNotification();
190
		assertFalse(observable.inComplex());
191
    }
192

  
193
    public void testComplex() {
194

  
195
        Random rnd = new Random();
196
        rnd.setSeed(System.currentTimeMillis());
197
        int i;
198
        int notifications = rnd.nextInt(10) + 2;
199
        int observers = rnd.nextInt(10) + 3;
200
        ArrayList observerList = new ArrayList(observers);
201
        MyObserver obs;
202
        for (i = 0; i < observers; i++) {
203
            obs = new MyObserver();
204
            obs.addObserverInFirstNotification = rnd.nextBoolean();
205
            observerList.add(obs);
206
            observable.addObserver(obs);
207
        }
208
        observable.beginComplexNotification();
209
        for (i = 0; i < notifications; i++) {
210
            Object obj = new Integer(i);
211
            observable.notifyObservers(obj);
212
        }
213

  
214
        for (i = 0; i < observers; i++) {
215
            obs = (MyObserver) observerList.get(i);
216
            assertEquals(0, obs.notifications.size());
217
            assertNull(obs.observerAdded);
218
        }
219

  
220
        observable.endComplexNotification();
221

  
222
        for (i = 0; i < observers; i++) {
223
            obs = (MyObserver) observerList.get(i);
224
            assertEquals(notifications, obs.notifications.size());
225
            if (obs.addObserverInFirstNotification) {
226
                assertNotNull(obs.observerAdded);
227
                assertEquals(0,
228
                    obs.observerAdded.notifications.size());
229
            }
230
        }
231
    }
232

  
233
    private class MyObserver implements Observer {
234

  
235
        public List notifications = new ArrayList();
236
        public boolean addObserverInFirstNotification = false;
237
        public MyObserver observerAdded = null;
238

  
239
        public void update(Observable observable, Object notification) {
240
            notifications.add(notification);
241
            if (addObserverInFirstNotification && notifications.size() == 1) {
242
                observerAdded = new MyObserver();
243
                observable.addObserver(observerAdded);
244
            }
245
        }
246

  
247
    }
248

  
249
	private class TestObserver implements Observer {
250
		private boolean mustBeNotified = false;
251

  
252
		public boolean isMustBeNotified() {
253
			return mustBeNotified;
254
		}
255

  
256
		public void setMustBeNotified(boolean mustBeNotified) {
257
			this.mustBeNotified = mustBeNotified;
258
		}
259

  
260
		public void update(Observable observable, Object notification) {
261
			if (!isMustBeNotified()) {
262
				fail("Observer notified when it shouldn't");
263
			}
264
		}
265
	}
266

  
267
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/servicewithprovider/myone/myone1/MyOne1ProviderLibrary.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.tools.servicewithprovider.myone.myone1;
25

  
26
import org.gvsig.tools.library.AbstractLibrary;
27
import org.gvsig.tools.library.LibraryException;
28
import org.gvsig.tools.servicewithprovider.MyLibrary;
29

  
30
public class MyOne1ProviderLibrary extends AbstractLibrary {
31

  
32
    public void doRegistration() {
33
        registerAsServiceOf(MyLibrary.class);
34
    }
35

  
36
	protected void doInitialize() throws LibraryException {
37
		
38
	}
39

  
40
	protected void doPostInitialize() throws LibraryException {
41
		
42
	}
43

  
44
}
0 45

  
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/servicewithprovider/myone/myone1/MyOne1ProviderFactory.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.tools.servicewithprovider.myone.myone1;
25

  
26
import org.gvsig.tools.ToolsLocator;
27
import org.gvsig.tools.dynobject.DynClass;
28
import org.gvsig.tools.dynobject.DynObject;
29
import org.gvsig.tools.dynobject.DynObjectManager;
30
import org.gvsig.tools.service.spi.AbstractProviderFactory;
31
import org.gvsig.tools.service.spi.Provider;
32
import org.gvsig.tools.service.spi.ProviderServices;
33

  
34
public class MyOne1ProviderFactory extends AbstractProviderFactory {
35

  
36
	
37
    public static final String PROVIDER_NAME = "MyOne1";
38
    public static final String PROVIDER_DESCRIPTION = "This is the MyOne1 provider";
39

  
40
    private DynClass parametersDefinition;
41

  
42
    public void initialize() {
43
        if (parametersDefinition == null) {
44
            DynObjectManager dynObjectManager =ToolsLocator.getDynObjectManager();
45
            parametersDefinition = dynObjectManager.createDynClass(PROVIDER_NAME,
46
                    PROVIDER_DESCRIPTION);
47

  
48
            parametersDefinition.addDynFieldString("param1").setMandatory(true);
49
            parametersDefinition.addDynFieldString("param2").setMandatory(true);
50

  
51
            dynObjectManager.add(parametersDefinition);
52
        }
53
    }
54

  
55
    protected DynClass createParametersDynClass() {
56
        if (parametersDefinition == null) {
57
            initialize();
58
        }
59
        return parametersDefinition;
60
    }
61

  
62
    protected Provider doCreate(DynObject parameters, ProviderServices services) {
63
        return new MyOne1Provider(parameters, services);
64
    }
65

  
66
}
0 67

  
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/servicewithprovider/myone/myone1/MyOne1Provider.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.tools.servicewithprovider.myone.myone1;
25

  
26
import org.gvsig.tools.dynobject.DynObject;
27
import org.gvsig.tools.service.spi.AbstractProvider;
28
import org.gvsig.tools.service.spi.ProviderServices;
29

  
30
public class MyOne1Provider extends AbstractProvider {
31

  
32
	private DynObject parameters = null;
33
	
34
	public MyOne1Provider(DynObject parameters, ProviderServices providerServices) {
35
		super(providerServices);
36
		this.parameters = parameters;
37
	}
38

  
39
}
0 40

  
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/servicewithprovider/myone/myone2/MyOne2Provider.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.tools.servicewithprovider.myone.myone2;
25

  
26
import org.gvsig.tools.dynobject.DynObject;
27
import org.gvsig.tools.service.spi.AbstractProvider;
28
import org.gvsig.tools.service.spi.ProviderServices;
29

  
30
public class MyOne2Provider extends AbstractProvider {
31

  
32
	private DynObject parameters = null;
33
	
34
	public MyOne2Provider(DynObject parameters, ProviderServices providerServices) {
35
		super(providerServices);
36
		this.parameters = parameters;
37
	}
38
	
39
}
0 40

  
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/servicewithprovider/myone/myone2/MyOne2ProviderFactory.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.tools.servicewithprovider.myone.myone2;
25

  
26
import org.gvsig.tools.ToolsLocator;
27
import org.gvsig.tools.dynobject.DynClass;
28
import org.gvsig.tools.dynobject.DynObject;
29
import org.gvsig.tools.dynobject.DynObjectManager;
30
import org.gvsig.tools.service.spi.AbstractProviderFactory;
31
import org.gvsig.tools.service.spi.Provider;
32
import org.gvsig.tools.service.spi.ProviderServices;
33
import org.gvsig.tools.servicewithprovider.myone.myone1.MyOne1Provider;
34

  
35
public class MyOne2ProviderFactory extends AbstractProviderFactory {
36
	
37
    public static final String PROVIDER_NAME = "MyOne2";
38
    public static final String PROVIDER_DESCRIPTION = "This is the MyOne2 provider";
39

  
40
    private DynClass parametersDefinition;
41

  
42
    public void initialize() {
43
        if (parametersDefinition == null) {
44
            DynObjectManager dynObjectManager =ToolsLocator.getDynObjectManager();
45
            parametersDefinition = dynObjectManager.createDynClass(PROVIDER_NAME,
46
                    PROVIDER_DESCRIPTION);
47

  
48
            parametersDefinition.addDynFieldString("param1").setMandatory(true);
49
            parametersDefinition.addDynFieldString("param2").setMandatory(true);
50

  
51
            dynObjectManager.add(parametersDefinition);
52
        }
53
    }
54

  
55
    protected DynClass createParametersDynClass() {
56
        if (parametersDefinition == null) {
57
            initialize();
58
        }
59
        return parametersDefinition;
60
    }
61

  
62
    protected Provider doCreate(DynObject parameters, ProviderServices services) {
63
        return new MyOne2Provider(parameters, services);
64
    }
65

  
66
}
0 67

  
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/servicewithprovider/MyOneService.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.tools.servicewithprovider;
25

  
26
import org.gvsig.tools.service.Service;
27

  
28
/*
29
 * "MyOne" service with providers
30
 */
31
public interface MyOneService extends Service {
32

  
33
}
0 34

  
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.122/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/servicewithprovider/MyLocator.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.tools.servicewithprovider;
25

  
26
import org.gvsig.tools.locator.BaseLocator;
27
import org.gvsig.tools.locator.Locator;
28
import org.gvsig.tools.locator.LocatorException;
29

  
30
public class MyLocator  extends BaseLocator {
31

  
32
    /**
33
     * My manager name.
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff