Revision 2140

View differences:

org.gvsig.tools/library/tags/org.gvsig.tools-3.0.221/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.221/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.221/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.221/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.221/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.221/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.221/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.221/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.221/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.221</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.221/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/paging/DefaultPagingCalculatorTest.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.paging;
25

  
26
import junit.framework.TestCase;
27

  
28
import org.gvsig.tools.paging.DefaultPagingCalculator;
29
import org.gvsig.tools.paging.PagingCalculator.Sizeable;
30

  
31
/**
32
 * Unit tests for the {@link DefaultPagingCalculator} class.
33
 * 
34
 * @author gvSIG team
35
 */
36
public class DefaultPagingCalculatorTest extends TestCase {
37

  
38
    private DefaultPagingCalculator calculator;
39

  
40
	private static final long SIZE = 22;
41

  
42
	private static final int MAX_PAGE_SIZE = 4;
43

  
44
	protected void setUp() throws Exception {
45
		super.setUp();
46
		calculator = createCalculator();
47
	}
48

  
49
    protected DefaultPagingCalculator createCalculator() {
50
        return new DefaultPagingCalculator(new Sizeable() {
51

  
52
            public long getSize() {
53
                return SIZE;
54
            }
55
        }, MAX_PAGE_SIZE);
56
	}
57

  
58
	/**
59
	 * Test method for
60
	 * {@link org.gvsig.fmap.dal.feature.paging.impl.AbstractPagingCalculator#getMaxPageSize()}
61
	 * and
62
	 * {@link org.gvsig.fmap.dal.feature.paging.impl.AbstractPagingCalculator#setMaxPageSize(int)}
63
	 * .
64
	 */
65
	public void testMaxPageSize() {
66
		assertEquals(MAX_PAGE_SIZE, calculator.getMaxPageSize());
67

  
68
		calculator.setMaxPageSize(100);
69
		assertEquals(100, calculator.getMaxPageSize());
70

  
71
		try {
72
			calculator.setMaxPageSize(-10);
73
			fail("Calculator accepts a negative max page size value");
74
		} catch (Exception ex) {
75
			// works as expected
76
		}
77
	}
78

  
79
	/**
80
	 * Test method for
81
	 * {@link org.gvsig.fmap.dal.feature.paging.impl.AbstractPagingCalculator#getCurrentPage()}
82
	 * and
83
	 * {@link org.gvsig.fmap.dal.feature.paging.impl.AbstractPagingCalculator#setCurrentPage(long)}
84
	 * .
85
	 */
86
	public void testCurrentPage() {
87
		assertEquals(0, calculator.getCurrentPage());
88

  
89
		long page = calculator.getNumPages() - 1;
90
		calculator.setCurrentPage(page);
91

  
92
		assertEquals(page, calculator.getCurrentPage());
93

  
94
		try {
95
			calculator.setCurrentPage(-10);
96
			fail("Calculator accepts a negative current page value");
97
		} catch (Exception ex) {
98
			// works as expected
99
		}
100
	}
101

  
102
	/**
103
	 * Test method for
104
	 * {@link org.gvsig.fmap.dal.feature.paging.impl.AbstractPagingCalculator#getInitialIndex()}
105
	 * .
106
	 */
107
	public void testGetInitialIndex() {
108
		calculator.setCurrentPage(0l);
109
		assertEquals(0, calculator.getInitialIndex());
110

  
111
		calculator.setCurrentPage(2);
112
		assertEquals(2 * calculator.getMaxPageSize(),
113
				calculator.getInitialIndex());
114
	}
115

  
116
	/**
117
	 * Test method for
118
	 * {@link org.gvsig.fmap.dal.feature.paging.impl.AbstractPagingCalculator#getNumPages()}
119
	 * .
120
	 */
121
	public void testGetNumPages() {
122
		assertEquals(6, calculator.getNumPages());
123
	}
124

  
125
	/**
126
	 * Test method for
127
	 * {@link org.gvsig.fmap.dal.feature.paging.impl.AbstractPagingCalculator#getCurrentPageSize()}
128
	 * .
129
	 */
130
	public void testGetCurrentPageSize() {
131
		for (int i = 0; i < calculator.getNumPages() - 1; i++) {
132
			calculator.setCurrentPage(i);
133
			assertEquals(MAX_PAGE_SIZE, calculator.getCurrentPageSize());			
134
		}
135
		calculator.setCurrentPage(calculator.getNumPages() - 1);
136
		assertEquals(SIZE % MAX_PAGE_SIZE, calculator.getCurrentPageSize());
137
	}
138
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.221/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/dispose/impl/TestAbstractDisposableManager.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
/* gvSIG. Geographic Information System of the Valencian Government
25
*
26
* Copyright (C) 2007-2008 Infrastructures and Transports Department
27
* of the Valencian Government (CIT)
28
* 
29
* This program is free software; you can redistribute it and/or
30
* modify it under the terms of the GNU General Public License
31
* as published by the Free Software Foundation; either version 2
32
* of the License, or (at your option) any later version.
33
* 
34
* This program is distributed in the hope that it will be useful,
35
* but WITHOUT ANY WARRANTY; without even the implied warranty of
36
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
37
* GNU General Public License for more details.
38
* 
39
* You should have received a copy of the GNU General Public License
40
* along with this program; if not, write to the Free Software
41
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
42
* MA  02110-1301, USA.
43
* 
44
*/
45

  
46
/*
47
* AUTHORS (In addition to CIT):
48
* 2009 {}  {{Task}}
49
*/
50
package org.gvsig.tools.dispose.impl;
51

  
52
import junit.framework.TestCase;
53

  
54
import org.gvsig.tools.dispose.Disposable;
55
import org.gvsig.tools.dispose.DisposableManager;
56
import org.gvsig.tools.exception.BaseException;
57

  
58
/**
59
 * Unit tests for the {@link DisposableManager} API.
60
 * 
61
 * @author 2009- <a href="cordinyana@gvsig.org">C?sar Ordi?ana</a> - gvSIG team
62
 */
63
public abstract class TestAbstractDisposableManager extends TestCase {
64

  
65
	private DisposableManager manager;
66

  
67
	protected void setUp() throws Exception {
68
		super.setUp();
69
		manager = createDisposableManager();
70
	}
71

  
72
	protected abstract DisposableManager createDisposableManager();
73

  
74
	/**
75
	 * Test method for {@link org.gvsig.tools.dispose.impl.DefaultDisposableManager#bind(org.gvsig.tools.dispose.Disposable)}.
76
	 */
77
	public void testBind() {
78
		Disposable disposable = new TestDisposable();
79
		assertTrue(manager.bind(disposable));
80
		assertFalse("A disposable has been able to bind once again",
81
				manager.bind(disposable));
82
		assertEquals(1, manager.getBoundDisposableCount());
83
		
84
		Disposable disposable2 = new TestDisposable();
85
		assertTrue(manager.bind(disposable2));
86
		assertFalse(manager.bind(disposable2));
87
		assertEquals(2, manager.getBoundDisposableCount());
88
	}
89

  
90
	/**
91
	 * Test method for {@link org.gvsig.tools.dispose.impl.DefaultDisposableManager#release(org.gvsig.tools.dispose.Disposable)}.
92
	 */
93
	public void testRelease() {
94
		Disposable disposable = new TestDisposable();
95
		assertFalse(manager.release(disposable));
96
		manager.bind(disposable);
97
		assertTrue(manager.release(disposable));
98
		assertEquals(0, manager.getBoundDisposableCount());
99

  
100
		Disposable disposable2 = new TestDisposable();
101
		manager.bind(disposable);
102
		assertFalse(manager.release(disposable2));
103
		manager.bind(disposable2);
104
		assertTrue(manager.release(disposable2));
105
		assertEquals(1, manager.getBoundDisposableCount());
106
	}
107

  
108
	/**
109
	 * Test method for
110
	 * {@link org.gvsig.tools.dispose.impl.DefaultDisposableManager#releaseAll()}
111
	 * .
112
	 * 
113
	 * @throws BaseException
114
	 */
115
	public void testReleaseAll() throws BaseException {
116
		Disposable disposable = new TestDisposable();
117
		Disposable disposable2 = new TestDisposable();
118
		manager.bind(disposable);
119
		manager.bind(disposable2);
120
		manager.releaseAll();
121
		assertEquals(0, manager.getBoundDisposableCount());
122
		assertFalse(manager.release(disposable));
123
		assertFalse(manager.release(disposable2));
124
	}
125

  
126
	private class TestDisposable implements Disposable {
127
		public void dispose() {
128
			// Nothing to do
129
		}
130
	}
131
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.221/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/dispose/impl/DefaultDisposableManagerTest.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
 * 2009 {}  {{Task}}
27
 */
28
package org.gvsig.tools.dispose.impl;
29

  
30
import org.gvsig.tools.dispose.DisposableManager;
31

  
32
/**
33
 * Unit tests for the {@link DefaultDisposableManager}.
34
 * 
35
 * @author 2009- <a href="cordinyana@gvsig.org">C?sar Ordi?ana</a> - gvSIG team
36
 */
37
public class DefaultDisposableManagerTest extends TestAbstractDisposableManager {
38

  
39
	protected DisposableManager createDisposableManager() {
40
		return new DefaultDisposableManager();
41
	}
42
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.221/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/extensionpoint/TestExtensionPoint.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
 */
27
package org.gvsig.tools.extensionpoint;
28

  
29
import java.lang.reflect.InvocationTargetException;
30
import java.util.Iterator;
31

  
32
import junit.framework.TestCase;
33

  
34
import org.gvsig.tools.extensionpoint.ExtensionPoint.Extension;
35
import org.gvsig.tools.extensionpoint.impl.DefaultExtensionPointManager;
36

  
37
public class TestExtensionPoint extends TestCase {
38

  
39

  
40
	protected void setUp() throws Exception {
41
		super.setUp();
42
	}
43

  
44
	protected void tearDown() throws Exception {
45
		super.tearDown();
46
	}
47

  
48
	private ExtensionPointManager getManager() {
49
		return DefaultExtensionPointManager.getManager();
50
	}
51

  
52
	public void testCreacion() {
53
		String name = "LayerWizars";
54
		String description = "Punto de extension que registra los distintos Wizars para a?adir capas.";
55
		ExtensionPoint ep = null;
56

  
57
		ep = getManager().create(name, description);
58
		TestExtensionPoint.assertEquals(ep.getName(),name);
59
		TestExtensionPoint.assertEquals(ep.getDescription(),description);
60

  
61
		ep.append("WMSLayer", null, ExtensionDePrueba2.class);
62
		ep.append("WCSLayer", null, ExtensionDePrueba1.class);
63
		ep.append("WFSLayer", null, ExtensionDePrueba1.class);
64

  
65
		TestExtensionPoint.assertEquals(ep.getCount(), 3);
66

  
67
		// Comprobamos que la lista de extensiones
68
		// mantiene el orden de insercion.
69
		Iterator iter = ep.iterator();
70
		TestExtensionPoint.assertEquals("WMSLayer", ((Extension) iter.next())
71
                .getName());
72
		TestExtensionPoint.assertEquals("WCSLayer", ((Extension) iter.next())
73
                .getName());
74
        TestExtensionPoint.assertEquals("WFSLayer", ((Extension) iter.next())
75
                .getName());
76

  
77
		try {
78
			/*Object extension =*/ ep.create("WCSLayer");
79
		} catch (InstantiationException e) {
80
			TestExtensionPoint.fail("Ha petado la creacion de WCSLayer con InstantiationException");
81
		} catch (IllegalAccessException e) {
82
			TestExtensionPoint.fail("Ha petado la creacion de WCSLayer con IllegalAccessException");
83
		}
84

  
85
		ExtensionDePrueba2 extension = null;
86
		try {
87
			Object args[] = {"pepe",new Integer(5)};
88
			extension =(ExtensionDePrueba2)ep.create("WMSLayer",args);
89
		} catch (InstantiationException e) {
90
			TestExtensionPoint.fail("Ha petado la creacion de WMSLayer con InstantiationException");
91
		} catch (IllegalAccessException e) {
92
			TestExtensionPoint.fail("Ha petado la creacion de WMSLayer con IllegalAccessException");
93
		} catch (SecurityException e) {
94
			TestExtensionPoint.fail("Ha petado la creacion de WMSLayer con SecurityException");
95
		} catch (IllegalArgumentException e) {
96
			TestExtensionPoint.fail("Ha petado la creacion de WMSLayer con IllegalArgumentException");
97
		} catch (NoSuchMethodException e) {
98
			TestExtensionPoint.fail("Ha petado la creacion de WMSLayer con NoSuchMethodException");
99
		} catch (InvocationTargetException e) {
100
			TestExtensionPoint.fail("Ha petado la creacion de WMSLayer con InvocationTargetException");
101
		}
102

  
103
		TestExtensionPoint.assertEquals("pepe",extension.nombre);
104
		TestExtensionPoint.assertEquals(5,extension.ancho);
105

  
106
	}
107

  
108
	public void testInsert() {
109
		String name = "LayerWizars";
110
		String description = "Punto de extension que registra los distintos Wizars para a?adir capas.";
111
		ExtensionPoint ep = null;
112

  
113
		ep = getManager().create(name, description);
114

  
115
		ep.append("WMSLayer", null, ExtensionDePrueba2.class);
116
		ep.append("WCSLayer", null, ExtensionDePrueba1.class);
117
		ep.append("WFSLayer", null, ExtensionDePrueba1.class);
118
		Iterator iter = ep.iterator();
119
        TestExtensionPoint.assertEquals("WMSLayer", ((Extension) iter.next())
120
                .getName());
121
        TestExtensionPoint.assertEquals("WCSLayer", ((Extension) iter.next())
122
                .getName());
123
        TestExtensionPoint.assertEquals("WFSLayer", ((Extension) iter.next())
124
                .getName());
125

  
126
		ep.insert("WCSLayer", "testA", null, ExtensionDePrueba1.class);
127

  
128
		iter = ep.iterator();
129
        TestExtensionPoint.assertEquals("WMSLayer", ((Extension) iter.next())
130
                .getName());
131
        TestExtensionPoint.assertEquals("testA", ((Extension) iter.next())
132
                .getName());
133
        TestExtensionPoint.assertEquals("WCSLayer", ((Extension) iter.next())
134
                .getName());
135
        TestExtensionPoint.assertEquals("WFSLayer", ((Extension) iter.next())
136
                .getName());
137

  
138
		ep.insert("XXXX", "testB", null, ExtensionDePrueba1.class);
139
		iter = ep.iterator();
140
        TestExtensionPoint.assertEquals("WMSLayer", ((Extension) iter.next())
141
                .getName());
142
        TestExtensionPoint.assertEquals("testA", ((Extension) iter.next())
143
                .getName());
144
        TestExtensionPoint.assertEquals("WCSLayer", ((Extension) iter.next())
145
                .getName());
146
        TestExtensionPoint.assertEquals("WFSLayer", ((Extension) iter.next())
147
                .getName());
148
        TestExtensionPoint.assertEquals("testB", ((Extension) iter.next())
149
                .getName());
150

  
151
		ep.insert("testB", "testC", null, ExtensionDePrueba1.class);
152
		iter = ep.iterator();
153
        TestExtensionPoint.assertEquals("WMSLayer", ((Extension) iter.next())
154
                .getName());
155
        TestExtensionPoint.assertEquals("testA", ((Extension) iter.next())
156
                .getName());
157
        TestExtensionPoint.assertEquals("WCSLayer", ((Extension) iter.next())
158
                .getName());
159
        TestExtensionPoint.assertEquals("WFSLayer", ((Extension) iter.next())
160
                .getName());
161
        TestExtensionPoint.assertEquals("testC", ((Extension) iter.next())
162
                .getName());
163
        TestExtensionPoint.assertEquals("testB", ((Extension) iter.next())
164
                .getName());
165

  
166
		ep.insert("WMSLayer", "testD", null, ExtensionDePrueba1.class);
167
		iter = ep.iterator();
168
        TestExtensionPoint.assertEquals("testD", ((Extension) iter.next())
169
                .getName());
170
        TestExtensionPoint.assertEquals("WMSLayer", ((Extension) iter.next())
171
                .getName());
172
        TestExtensionPoint.assertEquals("testA", ((Extension) iter.next())
173
                .getName());
174
        TestExtensionPoint.assertEquals("WCSLayer", ((Extension) iter.next())
175
                .getName());
176
        TestExtensionPoint.assertEquals("WFSLayer", ((Extension) iter.next())
177
                .getName());
178
        TestExtensionPoint.assertEquals("testC", ((Extension) iter.next())
179
                .getName());
180
        TestExtensionPoint.assertEquals("testB", ((Extension) iter.next())
181
                .getName());
182
	}
183

  
184
	public static class ExtensionDePrueba1 {
185
        public ExtensionDePrueba1() {
186
            ;
187
        }
188
    }
189

  
190
	public static class ExtensionDePrueba2 {
191
        public int ancho;
192
        public String nombre;
193

  
194
        public ExtensionDePrueba2(String nombre, Integer ancho) {
195
            this.ancho = ancho.intValue();
196
            this.nombre = nombre;
197
        }
198
	}
199
}
org.gvsig.tools/library/tags/org.gvsig.tools-3.0.221/org.gvsig.tools.lib/src/test/java/org/gvsig/tools/extensionpoint/TestExtensionPoints.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
 */
27
package org.gvsig.tools.extensionpoint;
28

  
29
import java.util.Iterator;
30

  
31
import junit.framework.TestCase;
32

  
33
import org.gvsig.tools.extensionpoint.ExtensionPoint.Extension;
34
import org.gvsig.tools.extensionpoint.impl.DefaultExtensionPointManager;
35

  
36
public class TestExtensionPoints extends TestCase {
37

  
38
	protected void setUp() throws Exception {
39
	    // Remove previous registered extension points, so other tests
40
        // don't affect the test validations.
41
		super.setUp();
42
	}
43

  
44
	protected void tearDown() throws Exception {
45
		super.tearDown();
46
	}
47

  
48
	public void test() {
49
		ExtensionPointManager manager = new DefaultExtensionPointManager();
50

  
51
		manager.add("LayerWizars").append("WMS", null,
52
				UnaExtensionDePrueba1.class);
53
		manager.add("LayerWizars").append("WCS", null,
54
				UnaExtensionDePrueba2.class);
55
		manager.add("OtherWizars").append("uno", null,
56
				UnaExtensionDePrueba1.class);
57
		manager.add("OtherWizars").append("dos", null,
58
				UnaExtensionDePrueba2.class);
59

  
60
		// Comprobamos que el orden de las extensiones es el que hemos fijado.
61
		ExtensionPoint x = manager.get("LayerWizars");
62
		Iterator i = x.iterator();
63
		String[] nombres = {"WMS", "WCS" };
64
		int n = 0;
65
		while( i.hasNext() ) {
66
			String nombre = ((Extension) i.next()).getName();
67
			assertTrue(nombres[n].equals(nombre));
68
			n++;
69
		}
70

  
71

  
72
		ExtensionPoint extensionPointLayerWizars;
73
		extensionPointLayerWizars = manager.get("LayerWizars");
74
		assertTrue(extensionPointLayerWizars.has("WMS"));
75
		assertTrue(extensionPointLayerWizars.has("WCS"));
76

  
77
		assertEquals(2, manager.getCount());
78
		assertEquals(2, extensionPointLayerWizars.getCount());
79

  
80
		ExtensionPoint extensionPointLayerWizars2 = manager.create(
81
				"LayerWizars", null);
82

  
83

  
84
		extensionPointLayerWizars2.append("File", null,
85
				UnaExtensionDePrueba3.class);
86
		extensionPointLayerWizars2.append("JDBC", null,
87
				UnaExtensionDePrueba4.class);
88

  
89
		manager.add(extensionPointLayerWizars2);
90

  
91
		extensionPointLayerWizars = manager.get("LayerWizars");
92
		assertEquals(manager.getCount(), 2);
93
		assertEquals(4, extensionPointLayerWizars.getCount());
94
        assertEquals(2, manager.get("OtherWizars").getCount());
95

  
96
		assertTrue(extensionPointLayerWizars.has("WMS"));
97
		assertTrue(extensionPointLayerWizars.has("WCS"));
98
		assertTrue(extensionPointLayerWizars.has("File"));
99
		assertTrue(extensionPointLayerWizars.has("JDBC"));
100

  
101
		assertEquals(UnaExtensionDePrueba4.class, extensionPointLayerWizars
102
                .get("JDBC").getExtension());
103
        assertEquals(UnaExtensionDePrueba1.class, extensionPointLayerWizars
104
                .get("WMS").getExtension());
105

  
106
		assertEquals(UnaExtensionDePrueba1.class, manager.get("OtherWizars")
107
                .get("uno").getExtension());
108

  
109
		ExtensionPoint extensionPointOther2 = manager.create("OtherWizars",
110
				null);
111
		extensionPointOther2.append("tres", null, UnaExtensionDePrueba3.class);
112
		extensionPointOther2
113
				.append("cuatro", null, UnaExtensionDePrueba4.class);
114

  
115
		manager.add(extensionPointOther2);
116

  
117
		ExtensionPoint extensionPointOther = manager.get("OtherWizars");
118
		assertEquals(manager.getCount(), 2);
119
		assertEquals(extensionPointLayerWizars.getCount(), 4);
120
		assertEquals(extensionPointOther.getCount(), 4);
121

  
122
		assertTrue(extensionPointOther.has("uno"));
123
		assertTrue(extensionPointOther.has("dos"));
124
		assertTrue(extensionPointOther.has("tres"));
125
		assertTrue(extensionPointOther.has("cuatro"));
126

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff