Revision 525

View differences:

org.gvsig.catalog/tags/org.gvsig.catalog-2.0.92/org.gvsig.catalog.lib/src/test/java/org/gvsig/catalog/catalog/drivers/ExampleNewPanel.java
1
package org.gvsig.catalog.catalog.drivers;
2

  
3
import java.util.Properties;
4

  
5
import javax.swing.JLabel;
6
import javax.swing.JTextField;
7

  
8
import org.gvsig.catalog.ui.search.SearchAditionalPropertiesPanel;
9

  
10

  
11
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
12
 *
13
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
14
 *
15
 * This program is free software; you can redistribute it and/or
16
 * modify it under the terms of the GNU General Public License
17
 * as published by the Free Software Foundation; either version 2
18
 * of the License, or (at your option) any later version.
19
 *
20
 * This program is distributed in the hope that it will be useful,
21
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23
 * GNU General Public License for more details.
24
 *
25
 * You should have received a copy of the GNU General Public License
26
 * along with this program; if not, write to the Free Software
27
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
28
 *
29
 * For more information, contact:
30
 *
31
 *  Generalitat Valenciana
32
 *   Conselleria d'Infraestructures i Transport
33
 *   Av. Blasco Ib??ez, 50
34
 *   46010 VALENCIA
35
 *   SPAIN
36
 *
37
 *      +34 963862235
38
 *   gvsig@gva.es
39
 *      www.gvsig.gva.es
40
 *
41
 *    or
42
 *
43
 *   IVER T.I. S.A
44
 *   Salamanca 50
45
 *   46005 Valencia
46
 *   Spain
47
 *
48
 *   +34 963163400
49
 *   dac@iver.es
50
 */
51
/* CVS MESSAGES:
52
 *
53
 * $Id: ExampleNewPanel.java 537 2007-07-26 11:21:10Z jpiera $
54
 * $Log$
55
 * Revision 1.1.2.1  2007/07/13 12:00:35  jorpiell
56
 * Add the posibility to add a new panel
57
 *
58
 *
59
 */
60
/**
61
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
62
 */
63
public class ExampleNewPanel extends SearchAditionalPropertiesPanel{
64
	JLabel label = null;
65
	JTextField text = null;
66
	
67
	public ExampleNewPanel(){
68
		label = new JLabel();
69
		text = new JTextField();		
70
		setLayout(new java.awt.BorderLayout());
71
		label.setText("Label");
72
		add(label, java.awt.BorderLayout.WEST);		
73
		add(text, java.awt.BorderLayout.CENTER);
74
	}
75
	
76
	/*
77
	 * (non-Javadoc)
78
	 * @see es.gva.cit.gazetteer.ui.search.SearchAditionalPropertiesPanel#getProperties()
79
	 */
80
	public Properties getProperties() {
81
		Properties properties = new Properties();
82
		properties.put("PROP1", text.getText());
83
		return properties;
84
	}
85

  
86
}
0 87

  
org.gvsig.catalog/tags/org.gvsig.catalog-2.0.92/org.gvsig.catalog.lib/src/test/java/org/gvsig/catalog/catalog/drivers/ExampleNewDriver.java
1
package org.gvsig.catalog.catalog.drivers;
2

  
3
import java.net.URI;
4

  
5
import org.gvsig.catalog.CatalogLocator;
6
import org.gvsig.catalog.CatalogManager;
7
import org.gvsig.catalog.drivers.AbstractCatalogServiceDriver;
8
import org.gvsig.catalog.drivers.CatalogCapabilities;
9
import org.gvsig.catalog.drivers.DiscoveryServiceCapabilities;
10
import org.gvsig.catalog.drivers.GetRecordsReply;
11
import org.gvsig.catalog.querys.CatalogQuery;
12
import org.gvsig.catalog.schemas.Record;
13
import org.gvsig.catalog.ui.search.SearchAditionalPropertiesPanel;
14

  
15

  
16
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
17
 *
18
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
19
 *
20
 * This program is free software; you can redistribute it and/or
21
 * modify it under the terms of the GNU General Public License
22
 * as published by the Free Software Foundation; either version 2
23
 * of the License, or (at your option) any later version.
24
 *
25
 * This program is distributed in the hope that it will be useful,
26
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
27
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
28
 * GNU General Public License for more details.
29
 *
30
 * You should have received a copy of the GNU General Public License
31
 * along with this program; if not, write to the Free Software
32
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
33
 *
34
 * For more information, contact:
35
 *
36
 *  Generalitat Valenciana
37
 *   Conselleria d'Infraestructures i Transport
38
 *   Av. Blasco Ib??ez, 50
39
 *   46010 VALENCIA
40
 *   SPAIN
41
 *
42
 *      +34 963862235
43
 *   gvsig@gva.es
44
 *      www.gvsig.gva.es
45
 *
46
 *    or
47
 *
48
 *   IVER T.I. S.A
49
 *   Salamanca 50
50
 *   46005 Valencia
51
 *   Spain
52
 *
53
 *   +34 963163400
54
 *   dac@iver.es
55
 */
56
/* CVS MESSAGES:
57
 *
58
 * $Id: ExampleNewDriver.java 537 2007-07-26 11:21:10Z jpiera $
59
 * $Log$
60
 * Revision 1.1.2.1  2007/07/13 12:00:35  jorpiell
61
 * Add the posibility to add a new panel
62
 *
63
 *
64
 */
65
/**
66
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
67
 */
68
public class ExampleNewDriver extends AbstractCatalogServiceDriver {
69
	private static final CatalogManager catalogManager = CatalogLocator.getCatalogManager();
70
	
71
	/*
72
	 * (non-Javadoc)
73
	 * @see es.gva.cit.catalogClient.drivers.IDiscoveryServiceDriver#getCapabilities(java.net.URI)
74
	 */
75
	public DiscoveryServiceCapabilities getCapabilities(URI uri) {
76
		return new CatalogCapabilities();
77
	}
78

  
79
	/*
80
	 * (non-Javadoc)
81
	 * @see es.gva.cit.catalog.drivers.ICatalogServiceDriver#getRecords(java.net.URI, es.gva.cit.catalog.querys.CatalogQuery, int)
82
	 */
83
	public GetRecordsReply getRecords(URI uri, CatalogQuery query,
84
			int firstRecord) {
85
		GetRecordsReply reply = new GetRecordsReply(1);
86
		Record record = catalogManager.createRecord(uri, null);
87
		record.setTitle("Record example");
88
		record.setAbstract_("Just for testing");
89
		reply.addRecord(record);
90
		return reply;
91
	}
92

  
93
	/*
94
	 * (non-Javadoc)
95
	 * @see es.gva.cit.catalog.drivers.IDiscoveryServiceDriver#getServiceName()
96
	 */
97
	public String getServiceName() {
98
		return "My catalog service";
99
	}
100

  
101
	/*
102
	 * (non-Javadoc)
103
	 * @see es.gva.cit.gazetteer.drivers.IGazetteerServiceDriver#getAditionalSearchPanel()
104
	 */
105
	public SearchAditionalPropertiesPanel getAditionalSearchPanel(){
106
		return new ExampleNewPanel();
107
	}
108

  
109

  
110

  
111

  
112
}
0 113

  
org.gvsig.catalog/tags/org.gvsig.catalog-2.0.92/org.gvsig.catalog.lib/src/test/java/org/gvsig/catalog/catalog/drivers/ExampleNewDriverTest.java
1
package org.gvsig.catalog.catalog.drivers;
2

  
3
import javax.swing.UIManager;
4
import javax.swing.UnsupportedLookAndFeelException;
5

  
6
import org.gvsig.catalog.CatalogLocator;
7
import org.gvsig.catalog.ui.serverconnect.ServerConnectDialog;
8
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
9

  
10

  
11
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
12
 *
13
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
14
 *
15
 * This program is free software; you can redistribute it and/or
16
 * modify it under the terms of the GNU General Public License
17
 * as published by the Free Software Foundation; either version 2
18
 * of the License, or (at your option) any later version.
19
 *
20
 * This program is distributed in the hope that it will be useful,
21
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23
 * GNU General Public License for more details.
24
 *
25
 * You should have received a copy of the GNU General Public License
26
 * along with this program; if not, write to the Free Software
27
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
28
 *
29
 * For more information, contact:
30
 *
31
 *  Generalitat Valenciana
32
 *   Conselleria d'Infraestructures i Transport
33
 *   Av. Blasco Ib??ez, 50
34
 *   46010 VALENCIA
35
 *   SPAIN
36
 *
37
 *      +34 963862235
38
 *   gvsig@gva.es
39
 *      www.gvsig.gva.es
40
 *
41
 *    or
42
 *
43
 *   IVER T.I. S.A
44
 *   Salamanca 50
45
 *   46005 Valencia
46
 *   Spain
47
 *
48
 *   +34 963163400
49
 *   dac@iver.es
50
 */
51
/* CVS MESSAGES:
52
 *
53
 * $Id: ExampleNewDriverTest.java 512 2007-07-24 11:25:43Z jorpiell $
54
 * $Log$
55
 * Revision 1.1.2.2  2007/07/24 11:25:42  jorpiell
56
 * The registers has been refactorized
57
 *
58
 * Revision 1.1.2.1  2007/07/13 12:00:35  jorpiell
59
 * Add the posibility to add a new panel
60
 *
61
 *
62
 */
63
/**
64
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
65
 */
66
public class ExampleNewDriverTest {
67

  
68
	/**
69
	 * @param args
70
	 */
71
	public static void main(String[] args) {
72
		new DefaultLibrariesInitializer().fullInitialize();
73
//		DefaultCatalogLibrary library = new DefaultCatalogLibrary();
74
//		library.initialize();
75
//		library.postInitialize();
76

  
77
		CatalogLocator.getCatalogManager().register("My catalog service", ExampleNewDriver.class);
78
		//Get the currently installed look and feel
79
		UIManager.getLookAndFeel();
80
		// Install a different look and feel; specifically, the Windows look and feel
81
		try {
82
			UIManager.setLookAndFeel(
83
					"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
84
		} catch (InstantiationException e) {
85
		} catch (ClassNotFoundException e) {
86
		} catch (UnsupportedLookAndFeelException e) {
87
		} catch (IllegalAccessException e) {
88
		}
89

  
90
		new ServerConnectDialog();
91
	}
92

  
93
}
0 94

  
org.gvsig.catalog/tags/org.gvsig.catalog-2.0.92/org.gvsig.catalog.lib/src/test/java/org/gvsig/catalog/catalog/utils/URIUtilsTest.java
1
package org.gvsig.catalog.catalog.utils;
2

  
3
import java.net.URI;
4
import java.net.URISyntaxException;
5

  
6
import junit.framework.TestCase;
7

  
8
import org.gvsig.catalog.utils.URIUtils;
9

  
10
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
11
 *
12
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
13
 *
14
 * This program is free software; you can redistribute it and/or
15
 * modify it under the terms of the GNU General Public License
16
 * as published by the Free Software Foundation; either version 2
17
 * of the License, or (at your option) any later version.
18
 *
19
 * This program is distributed in the hope that it will be useful,
20
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22
 * GNU General Public License for more details.
23
 *
24
 * You should have received a copy of the GNU General Public License
25
 * along with this program; if not, write to the Free Software
26
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
27
 *
28
 * For more information, contact:
29
 *
30
 *  Generalitat Valenciana
31
 *   Conselleria d'Infraestructures i Transport
32
 *   Av. Blasco Ib??ez, 50
33
 *   46010 VALENCIA
34
 *   SPAIN
35
 *
36
 *      +34 963862235
37
 *   gvsig@gva.es
38
 *      www.gvsig.gva.es
39
 *
40
 *    or
41
 *
42
 *   IVER T.I. S.A
43
 *   Salamanca 50
44
 *   46005 Valencia
45
 *   Spain
46
 *
47
 *   +34 963163400
48
 *   dac@iver.es
49
 */
50
/* CVS MESSAGES:
51
 *
52
 * $Id: URIUtilsTest.java,v 1.1.2.1 2007/07/10 11:18:04 jorpiell Exp $
53
 * $Log: URIUtilsTest.java,v $
54
 * Revision 1.1.2.1  2007/07/10 11:18:04  jorpiell
55
 * Added the registers
56
 *
57
 *
58
 */
59
/**
60
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
61
 */
62
public class URIUtilsTest extends TestCase {
63
	
64
	public void test1() throws URISyntaxException{
65
		URI uri = URIUtils.createUri("http://www.upv.es", "http", 80);	
66
		assertEquals(uri.getHost(), "www.upv.es");
67
		assertEquals(uri.getScheme(), "http");
68
		assertEquals(uri.getPort(), 80);
69
		assertEquals(uri.getPath(), "");
70
	}
71
	
72
	public void test2() throws URISyntaxException{
73
		URI uri = URIUtils.createUri("www.upv.es", "http", 80);	
74
		assertEquals(uri.getHost(), "www.upv.es");
75
		assertEquals(uri.getScheme(), "http");
76
		assertEquals(uri.getPort(), 80);
77
		assertEquals(uri.getPath(), "");
78
	}
79
	
80
	public void test3() throws URISyntaxException{
81
		URI uri = URIUtils.createUri("www.upv.es", "z3950", 2100);	
82
		assertEquals(uri.getHost(), "www.upv.es");
83
		assertEquals(uri.getScheme(), "z3950");
84
		assertEquals(uri.getPort(), 2100);
85
		assertEquals(uri.getPath(), "");
86
	}
87
	
88
	public void test4() throws URISyntaxException{
89
		URI uri = URIUtils.createUri("http://193.144.250.29/webservices/services/IDEC_GeoServeisPort", "http", 80);	
90
		assertEquals(uri.getHost(), "193.144.250.29");
91
		assertEquals(uri.getScheme(), "http");
92
		assertEquals(uri.getPort(), 80);
93
		assertEquals(uri.getPath(), "/webservices/services/IDEC_GeoServeisPort");
94
	}
95
}
0 96

  
org.gvsig.catalog/tags/org.gvsig.catalog-2.0.92/org.gvsig.catalog.lib/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.catalog.CatalogLibrary
2
org.gvsig.catalog.impl.DefaultCatalogLibrary
org.gvsig.catalog/tags/org.gvsig.catalog-2.0.92/org.gvsig.catalog.lib/src/main/java/org/gvsig/catalog/utils/CatalogConstants.java
1
package org.gvsig.catalog.utils;
2

  
3
import java.awt.Dimension;
4

  
5
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
6
 *
7
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
8
 *
9
 * This program is free software; you can redistribute it and/or
10
 * modify it under the terms of the GNU General Public License
11
 * as published by the Free Software Foundation; either version 2
12
 * of the License, or (at your option) any later version.
13
 *
14
 * This program is distributed in the hope that it will be useful,
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 * GNU General Public License for more details.
18
 *
19
 * You should have received a copy of the GNU General Public License
20
 * along with this program; if not, write to the Free Software
21
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
22
 *
23
 * For more information, contact:
24
 *
25
 *  Generalitat Valenciana
26
 *   Conselleria d'Infraestructures i Transport
27
 *   Av. Blasco Ib??ez, 50
28
 *   46010 VALENCIA
29
 *   SPAIN
30
 *
31
 *      +34 963862235
32
 *   gvsig@gva.es
33
 *      www.gvsig.gva.es
34
 *
35
 *    or
36
 *
37
 *   IVER T.I. S.A
38
 *   Salamanca 50
39
 *   46005 Valencia
40
 *   Spain
41
 *
42
 *   +34 963163400
43
 *   dac@iver.es
44
 */
45
/* CVS MESSAGES:
46
 *
47
 * $Id: CatalogConstants.java 602 2007-09-24 11:55:02 +0000 (Mon, 24 Sep 2007) jpiera $
48
 * $Log$
49
 * Revision 1.1.2.4  2007/07/24 09:45:52  jorpiell
50
 * Fix some interface bugs
51
 *
52
 * Revision 1.1.2.3  2007/07/23 07:14:25  jorpiell
53
 * Catalog refactoring
54
 *
55
 * Revision 1.1.2.2  2007/07/11 13:01:50  jorpiell
56
 * Catalog UI updated
57
 *
58
 * Revision 1.1.2.1  2007/07/10 11:18:04  jorpiell
59
 * Added the registers
60
 *
61
 *
62
 */
63
/**
64
 * This class has some constants for the catalog client
65
 * @author Jorge Piera LLodr? (jorge.piera@iver.es)
66
 */
67
public class CatalogConstants {
68
	public static final int BUTTON_LENGHT = 80;
69
	public static final int BUTTON_WIDTH = 23;
70
	public static final Dimension BUTTON_SIZE = new Dimension(BUTTON_LENGHT,BUTTON_WIDTH);
71
	public static final int RESIZE_WINDOW_BUTTON_SIZE = 30;
72
	
73
	//Action commands
74
	public static final String CLOSE_BUTTON_ACTION_COMMAND = "close";
75
	public static final String NEXT_BUTTON_ACTION_COMMAND = "next";
76
	public static final String LAST_BUTTON_ACTION_COMMAND = "last";
77
	public static final String CANCEL_BUTTON_ACTION_COMMAND = "cancel";
78
	public static final String SEARCH_BUTTON_ACTION_COMMAND = "search";
79
	public static final String PROTOCOL_COMBO_ACTION_COMMAND = "protocolCombo";
80
	public static final String SERVER_COMBO_ACTION_COMMAND = "serverCombo";
81
	public static final String RESIZE_BUTTON_ACTION_COMMAND = "resize";
82
	public static final String CONNECT_BUTTON_ACTION_COMMAND = "connect";
83
	public static final String SERVERPROPERTIES_BUTTON_ACTION_COMMAND = "serverProperties";
84

  
85
	//conordancia
86
	public static final String EXACT_WORDS = "E";
87
	public static final String ANY_WORD = "Y";
88
	public static final String ALL_WORDS = "A";
89
	public static final String OR = "Or";
90
	public static final String AND = "And";
91
	
92
	//Connection 
93
	public static final int GET = 0;
94
	public static final int POST = 1;
95
	public static final int SOAP = 2;
96
	public static final int Z3950 = 4;
97
	
98
	//XML
99
	public static final String XML_HEADER_ENCODING = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
100
	public static final String XML_NS = "xmlns";
101

  
102
}
0 103

  
org.gvsig.catalog/tags/org.gvsig.catalog-2.0.92/org.gvsig.catalog.lib/src/main/java/org/gvsig/catalog/utils/xmltreetable/XMLTreeTableCellEditor.java
1

  
2
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
3
 *
4
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
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., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
19
 *
20
 * For more information, contact:
21
 *
22
 *  Generalitat Valenciana
23
 *   Conselleria d'Infraestructures i Transport
24
 *   Av. Blasco Ib??ez, 50
25
 *   46010 VALENCIA
26
 *   SPAIN
27
 *
28
 *      +34 963862235
29
 *   gvsig@gva.es
30
 *      www.gvsig.gva.es
31
 *
32
 *    or
33
 *
34
 *   IVER T.I. S.A
35
 *   Salamanca 50
36
 *   46005 Valencia
37
 *   Spain
38
 *
39
 *   +34 963163400
40
 *   dac@iver.es
41
 */
42
package org.gvsig.catalog.utils.xmltreetable;
43
import java.awt.Component;
44
import java.awt.event.MouseEvent;
45
import java.io.Serializable;
46
import java.util.EventObject;
47

  
48
import javax.swing.JComponent;
49
import javax.swing.JTable;
50
import javax.swing.JTree;
51
import javax.swing.SwingUtilities;
52
import javax.swing.event.CellEditorListener;
53
import javax.swing.event.ChangeEvent;
54
import javax.swing.event.EventListenerList;
55
import javax.swing.table.TableCellEditor;
56
import javax.swing.tree.TreeCellEditor;
57

  
58
/**
59
 * DOCUMENT ME!
60
 * 
61
 * 
62
 * @author $author$
63
 */
64
public class XMLTreeTableCellEditor implements Serializable, TableCellEditor, TreeCellEditor {
65
/**
66
 * 
67
 * 
68
 */
69
    protected EventListenerList listenerList = new EventListenerList();
70
/**
71
 * 
72
 * 
73
 */
74
    protected transient ChangeEvent changeEvent = null;
75
/**
76
 * 
77
 * 
78
 */
79
    protected JComponent editorComponent = null;
80
/**
81
 * 
82
 * 
83
 */
84
    protected JComponent container = null;
85
// Can be tree or table
86

  
87
/**
88
 * DOCUMENT ME!
89
 * 
90
 * 
91
 * @return DOCUMENT ME!
92
 */
93
    public Component getComponent() {        
94
        return editorComponent;
95
    } 
96

  
97
/**
98
 * DOCUMENT ME!
99
 * 
100
 * 
101
 * @return DOCUMENT ME!
102
 */
103
    public Object getCellEditorValue() {        
104
        return editorComponent;
105
    } 
106

  
107
/**
108
 * DOCUMENT ME!
109
 * 
110
 * 
111
 * @return DOCUMENT ME!
112
 * @param anEvent DOCUMENT ME!
113
 */
114
    public boolean isCellEditable(EventObject anEvent) {        
115
        return true;
116
    } 
117

  
118
/**
119
 * DOCUMENT ME!
120
 * 
121
 * 
122
 * @return DOCUMENT ME!
123
 * @param anEvent DOCUMENT ME!
124
 */
125
    public boolean shouldSelectCell(EventObject anEvent) {        
126
        if ((editorComponent != null) && anEvent instanceof MouseEvent &&
127
                (((MouseEvent) anEvent).getID() == MouseEvent.MOUSE_PRESSED)) {
128
            Component dispatchComponent = SwingUtilities.getDeepestComponentAt(editorComponent,
129
                    3, 3);
130
            MouseEvent e = (MouseEvent) anEvent;
131
            MouseEvent e2 = new MouseEvent(dispatchComponent,
132
                    MouseEvent.MOUSE_RELEASED, e.getWhen() + 100000,
133
                    e.getModifiers(), 3, 3, e.getClickCount(),
134
                    e.isPopupTrigger());
135
            dispatchComponent.dispatchEvent(e2);
136
            e2 = new MouseEvent(dispatchComponent, MouseEvent.MOUSE_CLICKED,
137
                    e.getWhen() + 100001, e.getModifiers(), 3, 3, 1,
138
                    e.isPopupTrigger());
139
            dispatchComponent.dispatchEvent(e2);
140
        }
141
        return false;
142
    } 
143

  
144
/**
145
 * DOCUMENT ME!
146
 * 
147
 * 
148
 * @return DOCUMENT ME!
149
 */
150
    public boolean stopCellEditing() {        
151
        fireEditingStopped();
152
        return true;
153
    } 
154

  
155
/**
156
 * DOCUMENT ME!
157
 * 
158
 */
159
    public void cancelCellEditing() {        
160
        fireEditingCanceled();
161
    } 
162

  
163
/**
164
 * DOCUMENT ME!
165
 * 
166
 * 
167
 * @param l DOCUMENT ME!
168
 */
169
    public void addCellEditorListener(CellEditorListener l) {        
170
        listenerList.add(CellEditorListener.class, l);
171
    } 
172

  
173
/**
174
 * DOCUMENT ME!
175
 * 
176
 * 
177
 * @param l DOCUMENT ME!
178
 */
179
    public void removeCellEditorListener(CellEditorListener l) {        
180
        listenerList.remove(CellEditorListener.class, l);
181
    } 
182

  
183
/**
184
 * DOCUMENT ME!
185
 * 
186
 */
187
    protected void fireEditingStopped() {        
188
        Object[] listeners = listenerList.getListenerList();
189
        // Process the listeners last to first, notifying
190
        // those that are interested in this event
191
        for (int i = listeners.length - 2; i >= 0; i -= 2) {
192
            if (listeners[i] == CellEditorListener.class) {
193
                // Lazily create the event:
194
                if (changeEvent == null) {
195
                    changeEvent = new ChangeEvent(this);
196
                }
197
                ((CellEditorListener) listeners[i + 1]).editingStopped(changeEvent);
198
            }
199
        }
200
    } 
201

  
202
/**
203
 * DOCUMENT ME!
204
 * 
205
 */
206
    protected void fireEditingCanceled() {        
207
        // Guaranteed to return a non-null array
208
        Object[] listeners = listenerList.getListenerList();
209
        // Process the listeners last to first, notifying
210
        // those that are interested in this event
211
        for (int i = listeners.length - 2; i >= 0; i -= 2) {
212
            if (listeners[i] == CellEditorListener.class) {
213
                // Lazily create the event:
214
                if (changeEvent == null) {
215
                    changeEvent = new ChangeEvent(this);
216
                }
217
                ((CellEditorListener) listeners[i + 1]).editingCanceled(changeEvent);
218
            }
219
        }
220
    } 
221
// implements javax.swing.tree.TreeCellEditor
222

  
223
/**
224
 * 
225
 * 
226
 * 
227
 * @return 
228
 * @param tree 
229
 * @param value 
230
 * @param isSelected 
231
 * @param expanded 
232
 * @param leaf 
233
 * @param row 
234
 */
235
    public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) {        
236
        tree.convertValueToText(value, isSelected,
237
                expanded, leaf, row, false);
238
        editorComponent = (JComponent) value;
239
        container = tree;
240
        return editorComponent;
241
    } 
242
// implements javax.swing.table.TableCellEditor
243

  
244
/**
245
 * 
246
 * 
247
 * 
248
 * @return 
249
 * @param table 
250
 * @param value 
251
 * @param isSelected 
252
 * @param row 
253
 * @param column 
254
 */
255
    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {        
256
        editorComponent = (JComponent) value;
257
        container = table;
258
        return editorComponent;
259
    } 
260
 }
261
// End of class JComponentCellEditor
0 262

  
org.gvsig.catalog/tags/org.gvsig.catalog-2.0.92/org.gvsig.catalog.lib/src/main/java/org/gvsig/catalog/utils/xmltreetable/XMLTreeTableCellRenderer.java
1

  
2
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
3
*
4
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
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., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
19
*
20
* For more information, contact:
21
*
22
*  Generalitat Valenciana
23
*   Conselleria d'Infraestructures i Transport
24
*   Av. Blasco Ib??ez, 50
25
*   46010 VALENCIA
26
*   SPAIN
27
*
28
*      +34 963862235
29
*   gvsig@gva.es
30
*      www.gvsig.gva.es
31
*
32
*    or
33
*
34
*   IVER T.I. S.A
35
*   Salamanca 50
36
*   46005 Valencia
37
*   Spain
38
*
39
*   +34 963163400
40
*   dac@iver.es
41
*/
42
package org.gvsig.catalog.utils.xmltreetable;
43
import java.awt.Component;
44

  
45
import javax.swing.JComponent;
46
import javax.swing.JTable;
47
import javax.swing.table.TableCellRenderer;
48

  
49
/**
50
 * 
51
 * 
52
 * 
53
 * @author Jorge Piera Llodra (piera_jor@gva.es)
54
 */
55
class XMLTreeTableCellRenderer implements TableCellRenderer {
56
/* (non-Javadoc)
57
     * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
58
     */
59

  
60
/**
61
 * 
62
 * 
63
 * 
64
 * @return 
65
 * @param table 
66
 * @param value 
67
 * @param isSelected 
68
 * @param hasFocus 
69
 * @param row 
70
 * @param column 
71
 */
72
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {        
73
        // TODO Auto-generated method stub
74
        return (JComponent) value;
75
    } 
76
 }
0 77

  
org.gvsig.catalog/tags/org.gvsig.catalog-2.0.92/org.gvsig.catalog.lib/src/main/java/org/gvsig/catalog/utils/xmltreetable/XMLTreeCellRenderer.java
1

  
2
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
3
*
4
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
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., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
19
*
20
* For more information, contact:
21
*
22
*  Generalitat Valenciana
23
*   Conselleria d'Infraestructures i Transport
24
*   Av. Blasco Ib??ez, 50
25
*   46010 VALENCIA
26
*   SPAIN
27
*
28
*      +34 963862235
29
*   gvsig@gva.es
30
*      www.gvsig.gva.es
31
*
32
*    or
33
*
34
*   IVER T.I. S.A
35
*   Salamanca 50
36
*   46005 Valencia
37
*   Spain
38
*
39
*   +34 963163400
40
*   dac@iver.es
41
*/
42
package org.gvsig.catalog.utils.xmltreetable;
43

  
44
/**
45
 * 
46
 * 
47
 * 
48
 * @author Jorge Piera Llodra (piera_jor@gva.es)
49
 */
50
public class XMLTreeCellRenderer extends javax.swing.tree.DefaultTreeCellRenderer {
51

  
52
/**
53
 * 
54
 * 
55
 */
56
    public  XMLTreeCellRenderer() {        
57
        this.setClosedIcon(null);
58
        this.setOpenIcon(null);
59
        this.setLeafIcon(null);
60
    } 
61
 }
0 62

  
org.gvsig.catalog/tags/org.gvsig.catalog-2.0.92/org.gvsig.catalog.lib/src/main/java/org/gvsig/catalog/utils/xmltreetable/XMLTreeTable.java
1

  
2
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
3
*
4
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
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., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
19
*
20
* For more information, contact:
21
*
22
*  Generalitat Valenciana
23
*   Conselleria d'Infraestructures i Transport
24
*   Av. Blasco Ib??ez, 50
25
*   46010 VALENCIA
26
*   SPAIN
27
*
28
*      +34 963862235
29
*   gvsig@gva.es
30
*      www.gvsig.gva.es
31
*
32
*    or
33
*
34
*   IVER T.I. S.A
35
*   Salamanca 50
36
*   46005 Valencia
37
*   Spain
38
*
39
*   +34 963163400
40
*   dac@iver.es
41
*/
42
package org.gvsig.catalog.utils.xmltreetable;
43
import javax.swing.JComponent;
44
import javax.swing.JTree;
45

  
46
import next.swing.JTreeTable;
47
import next.swing.TreeTableModel;
48

  
49
/**
50
 * 
51
 * 
52
 * 
53
 * @author Jorge Piera Llodra (piera_jor@gva.es)
54
 */
55
public class XMLTreeTable extends JTreeTable {
56

  
57
/**
58
 * 
59
 * 
60
 * 
61
 * @param treeTableModel 
62
 */
63
    public  XMLTreeTable(TreeTableModel treeTableModel) {        
64
        super(treeTableModel);
65
        tree.setCellRenderer(new XMLTreeCellRenderer());
66
        setDefaultEditor(JComponent.class, new XMLTreeTableCellEditor());
67
    } 
68

  
69
/**
70
 * 
71
 * 
72
 * 
73
 * @return 
74
 */
75
    public JTree getTree() {        
76
        return tree;
77
    } 
78

  
79
/**
80
 * 
81
 * 
82
 * 
83
 * @return 
84
 * @param x 
85
 * @param y 
86
 */
87
    public boolean isCellEditable(int x, int y) {        
88
        return true;
89
    } 
90
 }
0 91

  
org.gvsig.catalog/tags/org.gvsig.catalog-2.0.92/org.gvsig.catalog.lib/src/main/java/org/gvsig/catalog/utils/xmltreetable/XMLTreeTableModel.java
1

  
2
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
3
*
4
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
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., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
19
*
20
* For more information, contact:
21
*
22
*  Generalitat Valenciana
23
*   Conselleria d'Infraestructures i Transport
24
*   Av. Blasco Ib??ez, 50
25
*   46010 VALENCIA
26
*   SPAIN
27
*
28
*      +34 963862235
29
*   gvsig@gva.es
30
*      www.gvsig.gva.es
31
*
32
*    or
33
*
34
*   IVER T.I. S.A
35
*   Salamanca 50
36
*   46005 Valencia
37
*   Spain
38
*
39
*   +34 963163400
40
*   dac@iver.es
41
*/
42
package org.gvsig.catalog.utils.xmltreetable;
43
import java.awt.Font;
44
import java.util.Enumeration;
45
import java.util.Vector;
46

  
47
import javax.swing.JEditorPane;
48
import javax.swing.JLabel;
49
import javax.swing.JScrollPane;
50
import javax.swing.JTree;
51
import javax.swing.tree.DefaultMutableTreeNode;
52
import javax.swing.tree.TreePath;
53

  
54
import next.swing.AbstractTreeTableModel;
55
import next.swing.TreeTableModel;
56

  
57
import org.amic.util.date.Date;
58
import org.gvsig.catalog.metadataxml.XMLNode;
59
import org.gvsig.catalog.utils.Strings;
60

  
61
/**
62
 * 
63
 * 
64
 * 
65
 * @author Jorge Piera Llodra (piera_jor@gva.es)
66
 */
67
public class XMLTreeTableModel extends AbstractTreeTableModel {
68

  
69
/**
70
 * 
71
 * 
72
 */
73
    private Vector columns = null;
74

  
75
/**
76
 * 
77
 * 
78
 */
79
    private String[] allowed = null;
80

  
81
/**
82
 * 
83
 * 
84
 */
85
    private String[] forbidden = null;
86

  
87
/**
88
 * 
89
 * 
90
 */
91
    private boolean dynamic = false;
92

  
93
/**
94
 * Creates new XmlTreeTableModel
95
 * 
96
 * 
97
 * @param node 
98
 */
99
    public  XMLTreeTableModel(XMLNode node) {        
100
        this(node, -1, null, null);
101
    } 
102

  
103
/**
104
 * 
105
 * 
106
 * 
107
 * @param node 
108
 * @param level 
109
 * @param allowed 
110
 * @param forbidden 
111
 */
112
    public  XMLTreeTableModel(XMLNode node, int level, String[] allowed, String[] forbidden) {        
113
        super(new DefaultMutableTreeNode(node));
114
        this.allowed = allowed;
115
        this.forbidden = forbidden;
116
        processChildren((DefaultMutableTreeNode) getRoot(), level);
117
    } 
118

  
119
/**
120
 * 
121
 * 
122
 */
123
    public final int ALIGN_LEFT = JLabel.LEFT;
124

  
125
/**
126
 * 
127
 * 
128
 */
129
    public final int ALIGN_RIGHT = JLabel.RIGHT;
130

  
131
/**
132
 * 
133
 * 
134
 */
135
    public final int ALIGN_CENTER = JLabel.CENTER;
136

  
137
/**
138
 * 
139
 * 
140
 * 
141
 * @param value 
142
 */
143
    public void setDynamic(boolean value) {        
144
        dynamic = value;
145
    } 
146

  
147
/**
148
 * 
149
 * 
150
 * 
151
 * @return 
152
 * @param node 
153
 */
154
    public boolean isLeaf(Object node) {        
155
        return (getChildCount(node) == 0) && !dynamic;
156
    } 
157

  
158
/**
159
 * 
160
 * 
161
 * 
162
 * @return 
163
 * @param node 
164
 * @param level 
165
 */
166
    public boolean processChildren(DefaultMutableTreeNode node, int level) {        
167
        if (level == 0) {
168
            return true;
169
        }
170
        boolean doIt = true;
171
        XMLNode n = (XMLNode) node.getUserObject();
172
        if (allowed != null) {
173
            String name = n.getName();
174
            doIt = false;
175
            for (int i = 0; i < allowed.length; i++)
176
                if (allowed[i].equals(name)) {
177
                    doIt = true;
178
                    break;
179
                }
180
        }
181
        if (forbidden != null) {
182
            String name = n.getName();
183
            for (int i = 0; i < forbidden.length; i++)
184
                if (forbidden[i].equals(name)) {
185
                    doIt = false;
186
                    break;
187
                }
188
        }
189
        if (!doIt) {
190
            return false;
191
        }
192
        XMLNode[] nodes = n.getSubnodes();
193
        DefaultMutableTreeNode newNode;
194
        for (int i=0 ; i<nodes.length ; i++) {
195
            newNode = new DefaultMutableTreeNode(nodes[i]);
196
            if (processChildren(newNode, level - 1)) {
197
                node.add(newNode);
198
            }
199
        }
200
        return true;
201
    } 
202

  
203
/**
204
 * 
205
 * 
206
 * 
207
 * @param ctt 
208
 */
209
    public void configureView(XMLTreeTable ctt) {        
210
        Column col;
211
        javax.swing.table.TableColumnModel tcm = ctt.getColumnModel();
212
        ctt.setRowHeight(20);
213
        int total = 0;
214
        for (int i = 1; i < tcm.getColumnCount(); i++) {
215
            col = ((Column) columns.elementAt(i - 1));
216
            tcm.getColumn(i).setPreferredWidth(50);
217
            total += col.width;
218
            tcm.getColumn(i).setCellRenderer(new XMLTreeTableCellRenderer());
219
        }
220
        tcm.getColumn(0).setWidth(100);
221
        setExpandedTree((DefaultMutableTreeNode) getRoot(), ctt.getTree());
222
    } 
223

  
224
/**
225
 * 
226
 * 
227
 * 
228
 * @return 
229
 * @param node 
230
 * @param tree 
231
 */
232
    public boolean setExpandedTree(DefaultMutableTreeNode node, JTree tree) {        
233
        boolean isExpanded = false;
234
        Enumeration children = node.children();
235
        while (children.hasMoreElements()) {
236
            DefaultMutableTreeNode child = (DefaultMutableTreeNode) children.nextElement();
237
            if (setExpandedTree(child, tree) && (isExpanded == false)) {
238
                isExpanded = true;
239
            }
240
        }
241
        if (node.isLeaf() && (isValueAt(node) || isAttributeAt(node))) {
242
            tree.expandPath(new TreePath(node.getPath()));
243
            return true;
244
        }
245
        if (isExpanded) {
246
            tree.expandPath(new TreePath(node.getPath()));
247
        }
248
        return isExpanded;
249
    } 
250

  
251
/**
252
 * 
253
 * 
254
 * 
255
 * @param name 
256
 * @param attribute 
257
 * @param label 
258
 * @param width 
259
 */
260
    public void addJScrollPaneColumn(String name, String attribute, String label, int width) {        
261
        addColumn(new Column(name, attribute, label, ALIGN_LEFT, width,
262
                JScrollPane.class, null));
263
    } 
264

  
265
/**
266
 * 
267
 * 
268
 * 
269
 * @param name 
270
 * @param attribute 
271
 * @param label 
272
 * @param width 
273
 */
274
    public void addStringColumn(String name, String attribute, String label, int width) {        
275
        addColumn(new Column(name, attribute, label, ALIGN_LEFT, width,
276
                String.class, null));
277
    } 
278

  
279
/**
280
 * 
281
 * 
282
 * 
283
 * @param name 
284
 * @param attribute 
285
 * @param label 
286
 * @param width 
287
 * @param format 
288
 */
289
    public void addNumberColumn(String name, String attribute, String label, int width, String format) {        
290
        addColumn(new Column(name, attribute, label, ALIGN_RIGHT, width,
291
                Double.class, format));
292
    } 
293

  
294
/**
295
 * 
296
 * 
297
 * 
298
 * @param name 
299
 * @param attribute 
300
 * @param label 
301
 * @param width 
302
 * @param format 
303
 */
304
    public void addDateColumn(String name, String attribute, String label, int width, String format) {        
305
        addColumn(new Column(name, attribute, label, ALIGN_LEFT, width,
306
                Date.class, format));
307
    } 
308

  
309
/**
310
 * 
311
 * 
312
 * 
313
 * @param column 
314
 */
315
    public void addColumn(Column column) {        
316
        if (columns == null) {
317
            columns = new Vector();
318
        }
319
        columns.add(column);
320
    } 
321

  
322
/**
323
 * 
324
 * 
325
 * 
326
 * @return 
327
 * @param parent 
328
 */
329
    public int getChildCount(Object parent) {        
330
        return ((DefaultMutableTreeNode) parent).getChildCount();
331
    } 
332

  
333
/**
334
 * 
335
 * 
336
 * 
337
 * @return 
338
 * @param parent 
339
 * @param index 
340
 */
341
    public Object getChild(Object parent, int index) {        
342
        return ((DefaultMutableTreeNode) parent).getChildAt(index);
343
    } 
344

  
345
/**
346
 * 
347
 * 
348
 * 
349
 * @return 
350
 * @param column 
351
 */
352
    public String getColumnName(int column) {        
353
        if (column == 0) {
354
            return "";
355
        }
356
        return ((Column) columns.elementAt(column - 1)).label;
357
    } 
358

  
359
/**
360
 * 
361
 * 
362
 * 
363
 * @return 
364
 * @param column 
365
 */
366
    public Class getColumnClass(int column) {        
367
        if (column == 0) {
368
            return TreeTableModel.class;
369
        }
370
        return ((Column) columns.elementAt(column - 1)).jClass;
371
    } 
372

  
373
/**
374
 * 
375
 * 
376
 * 
377
 * @return 
378
 * @param node 
379
 */
380
    public boolean isValueAt(Object node) {        
381
        DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode) node;
382
        if (currentNode.getUserObject() instanceof XMLNode) {
383
            XMLNode xr = (XMLNode) currentNode.getUserObject();
384
            if (xr != null) {
385
                if (xr.getText() != null) {
386
                    if (!(Strings.replace(xr.getText(), " ", "").equals(""))) {
387
                        return true;
388
                    }
389
                }
390
            }
391
        }
392
        return false;
393
    } 
394

  
395
/**
396
 * 
397
 * 
398
 * 
399
 * @return 
400
 * @param node 
401
 */
402
    public boolean isAttributeAt(Object node) {        
403
        DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode) node;
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff