Revision 3527 branches/gvSIG_WMSv2/extensions/extWMS/src/com/iver/cit/gvsig/gui/panels/WMSParamsPanel.java

View differences:

WMSParamsPanel.java
49 49
import java.util.Vector;
50 50

  
51 51
import javax.swing.DefaultListModel;
52
import javax.swing.ImageIcon;
53
import javax.swing.JButton;
52 54
import javax.swing.JCheckBox;
55
import javax.swing.JComboBox;
56
import javax.swing.JList;
53 57
import javax.swing.JPanel;
54 58
import javax.swing.JScrollPane;
55 59
import javax.swing.JTabbedPane;
......
120 124
	private JPanel jPanel5 = null;
121 125
	private JPanel tabStyle = null;
122 126
	private JPanel jPanel8 = null;
127
	private StylesSelectionPanel styleSelectPanel;
128
	private JPanel tabStyleSelect;
123 129
	private JCheckBox chkTransparency = null;
124 130
    private JPanel tabStyles = null;
125 131
    private JScrollPane jScrollPane = null;
126 132
    private JTable tblStyles = null;
127 133
    private JPanel tabInfo = null;
128
    private JScrollPane scrlInfo = null;
134
    private InfoPanel infoPanel = null;
129 135
    private JTable tblInfo = null;
130 136
    private JScrollPane jScrollPane3 = null;
131 137
    private JTree treeStyles = null;
......
418 424
    public void refresh() {
419 425
        refreshSRS();
420 426
        getLstSelectedLayers().repaint();
427
        styleSelectPanel.refresh();
421 428
        refreshStyleTable();
422
        refreshInfoTable();
423 429
    }
424 430

  
425
    private void refreshInfoTable(){
426
        DefaultTableModel tbl = (DefaultTableModel) getTblInfo().getModel();
427
        for (int i = tbl.getRowCount()-1; i >=0 ; i--) {
428
            tbl.removeRow(i);
429
        }
430
        String[] row = new String[tbl.getColumnCount()];
431
        
432
        // No Column names
433
        row[0] = " ";
434
        row[1] = " ";
435
        tbl.setColumnIdentifiers(row);
436
        
437
        
438
        // URL row
439
        row[0] = PluginServices.getText(this, "servidor");
440
        row[1] = dataSource.getHost();
441
        tbl.addRow( row );
442

  
443
        // Server type row
444
        row[0] = PluginServices.getText(this, "tipo_servidor");
445
        row[1] = dataSource.getServerType();
446
        tbl.addRow( row );
447
        
448
        // Server Title
449
        row[0] = PluginServices.getText(this, "titulo_wms");
450
        row[1] = dataSource.getTitle();
451
        tbl.addRow( row );
452
        
453
        // Abstract
454
        row[0] = PluginServices.getText(this, "abstract");
455
        row[1] = dataSource.getAbstract();
456
        tbl.addRow( row );
457
    }
458
    
459 431
    /**
460 432
	 * DOCUMENT ME!
461 433
	 */
......
621 593
		getTreeLayers().setModel(new LayerTreeModel(this.dataSource.getLayer()));
622 594
		/*getLstLayerStyles().setModel(getLstSelectedLayers().getModel());
623 595
		getLstLayerStyles().repaint();*/
596
        infoPanel.refresh(dataSource);
624 597
	}
625 598

  
626 599
	
......
795 768
		if (jTabbedPane == null) {
796 769
			jTabbedPane = new JTabbedPane();
797 770
			jTabbedPane.setBounds(3, 3, 475, 415);
771
			jTabbedPane.addTab(PluginServices.getText(this, "info"), null, getTabInfo(), null);
798 772
			jTabbedPane.addTab(PluginServices.getText(this, "capas"), null, getTabLayers(), null);
799 773
			jTabbedPane.addTab(PluginServices.getText(this, "formatos"), null, getTabFormats(), null);
800
			jTabbedPane.addTab(PluginServices.getText(this, "estilos"), null, getTabStyle(), null);
801
			jTabbedPane.addTab(PluginServices.getText(this, "estilos"), null, getTabStyles(), null);	
802
			jTabbedPane.addTab(PluginServices.getText(this, "info"), null, getTabInfo(), null);
774
			jTabbedPane.addTab(PluginServices.getText(this, "estilos (old)"), null, getTabStyleSelect(), null);
775
			jTabbedPane.addTab(PluginServices.getText(this, "estilos arbol"), null, getTabStyle(), null);
776
			jTabbedPane.addTab(PluginServices.getText(this, "estilos tabla"), null, getTabStyles(), null);	
803 777
		}
804 778
		return jTabbedPane;
805 779
	}
......
873 847
	}
874 848

  
875 849
	/**
850
	 * This method initializes tabStyleSelect	
851
	 * 	
852
	 * @return javax.swing.JPanel	
853
	 */    
854
	private JPanel getTabStyleSelect() {
855
		if (tabStyleSelect == null) {
856
			styleSelectPanel = new StylesSelectionPanel(this);
857
			tabStyleSelect = new JPanel();
858
			tabStyleSelect.setLayout(null);
859
			tabStyleSelect.add(styleSelectPanel, null);
860
			styleSelectPanel.setTabPanel(tabStyleSelect);
861
		}
862
		return tabStyleSelect;
863
	}
864

  
865
	/**
876 866
     * This method initializes jPanel7  
877 867
     *  
878 868
     * @return javax.swing.JPanel   
......
1066 1056
     */    
1067 1057
    private JPanel getTabInfo() {
1068 1058
    	if (tabInfo == null) {
1059
    		infoPanel = new InfoPanel();
1069 1060
    		tabInfo = new JPanel();
1070
    		tabInfo.add(getScrlInfo(), null);
1061
    		tabInfo.add(infoPanel, null);
1071 1062
    	}
1072 1063
    	return tabInfo;
1073 1064
    }
1074 1065

  
1075 1066
    /**
1076
     * This method initializes scrlInfo	
1077
     * 	
1078
     * @return javax.swing.JScrollPane	
1079
     */    
1080
    private JScrollPane getScrlInfo() {
1081
    	if (scrlInfo == null) {
1082
    		scrlInfo = new JScrollPane();
1083
    		scrlInfo.setViewportView(getTblInfo());
1084
    	}
1085
    	return scrlInfo;
1086
    }
1087

  
1088
    /**
1089
     * This method initializes tblInfo	
1090
     * 	
1091
     * @return javax.swing.JTable	
1092
     */    
1093
    private JTable getTblInfo() {
1094
    	if (tblInfo == null) {
1095
            tblInfo = new JTable(new DefaultTableModel(0,2));
1096
            tblInfo.setRowSelectionAllowed(true);
1097
            tblInfo.setRowMargin(1);
1098
    	}
1099
    	return tblInfo;
1100
    }
1101

  
1102
    /**
1103 1067
     * This method initializes jScrollPane3	
1104 1068
     * 	
1105 1069
     * @return javax.swing.JScrollPane	
......
1125 1089
    	return treeStyles;
1126 1090
    }
1127 1091
}  //  @jve:decl-index=0:visual-constraint="10,10"
1092

  
1093
/**
1094
 * Panel de seleccion de estilos para cada capa seleccionada.
1095
 */
1096
class StylesSelectionPanel extends JPanel {
1097
	private WMSParamsPanel mainPanel = null;
1098
	private JPanel tabPanel = null;
1099
	private JScrollPane scrlLayerStyles = null;
1100
	private JScrollPane scrlSelectedStyles = null;
1101
	private JList lstLayerStyles = null;
1102
	private JList lstSelectedStyles = null;
1103
	private JButton setLayerStyleBtn = null;
1104
	private JButton deleteLayerStyleBtn = null;
1105
	private JComboBox cmbStyleLayers = null;
1106
    private ArrayList styles;
1107
    
1108
    public StylesSelectionPanel(WMSParamsPanel p) {
1109
    	super();
1110
    	mainPanel = p;
1111
    	init();
1112
    }
1113
	
1114
	/**
1115
	 * This method initializes Panel	
1116
	 */    
1117
	
1118
	private void init() {
1119
		setLayout(null);
1120
		setBounds(5, 9, 456, 376);
1121
		setBorder(javax.swing.BorderFactory.createTitledBorder(
1122
				null, PluginServices.getText(this, "seleccionar_estilo_para_capa"),
1123
				javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
1124
				javax.swing.border.TitledBorder.DEFAULT_POSITION, null, null));
1125
		add(getScrlLayerStyles(), null);
1126
		add(getScrlSelectedStyles(), null);
1127
		add(getSetLayerStyleBtn(), null);
1128
		add(getDeleteLayerStyleBtn(), null);
1129
		add(getCmbStyleLayers(), null);
1130
		setSetLayerStyleButtonEnabled(false);
1131
		setDeleteButtonEnabled(false);
1132
	}
1133
	
1134
	protected void refresh() {
1135
		getCmbStyleLayers().removeAllItems();
1136
		int size = getLstSelectedLayers().getModel().getSize();
1137
        getTabPanel().setEnabled(size != 0); // TODO y que alguna de ellas tenga estilo
1138
        for (int i=0; i<size; i++){
1139
			getCmbStyleLayers().addItem(getLstSelectedLayers().getModel().getElementAt(i));
1140
		}
1141
	}
1142
	
1143
	protected void setTabPanel(JPanel tab) {
1144
		tabPanel = tab;
1145
	}
1146

  
1147
	protected JPanel getTabPanel() {
1148
		return tabPanel;
1149
	}
1150
	
1151
	public JList getLstSelectedLayers() {
1152
		return mainPanel.getLstSelectedLayers();
1153
	}
1154

  
1155
	/**
1156
	 * This method initializes scrlLayerStyles	
1157
	 * 	
1158
	 * @return javax.swing.JScrollPane	
1159
	 */    
1160
	private JScrollPane getScrlLayerStyles() {
1161
		if (scrlLayerStyles == null) {
1162
			scrlLayerStyles = new JScrollPane();
1163
			scrlLayerStyles.setBounds(14, 67, 430, 117);
1164
			scrlLayerStyles.setViewportView(getLstLayerStyles());
1165
		}
1166
		return scrlLayerStyles;
1167
	}
1168

  
1169
	/**
1170
	 * This method initializes scrlStyles	
1171
	 * 	
1172
	 * @return javax.swing.JScrollPane	
1173
	 */    
1174
	private JScrollPane getScrlSelectedStyles() {
1175
		if (scrlSelectedStyles == null) {
1176
			scrlSelectedStyles = new JScrollPane();
1177
			scrlSelectedStyles.setBounds(14, 250, 430, 111);
1178
			scrlSelectedStyles.setViewportView(getLstSelectedStyles());
1179
			
1180
		}
1181
		return scrlSelectedStyles;
1182
	}
1183

  
1184
	/**
1185
	 * This method initializes lstLayerStyles	
1186
	 * 	
1187
	 * @return javax.swing.JList	
1188
	 */    
1189
	private JList getLstLayerStyles() {
1190
		if (lstLayerStyles == null) {
1191
			lstLayerStyles = new JList();
1192
		}
1193
		return lstLayerStyles;
1194
	}
1195

  
1196

  
1197
    /**
1198
	 * This method initializes lstStyles	
1199
	 * 	
1200
	 * @return javax.swing.JList	
1201
	 */    
1202
	private JList getLstSelectedStyles() {
1203
		if (lstSelectedStyles == null) {
1204
			lstSelectedStyles = new JList();
1205
		}
1206
		return lstSelectedStyles;
1207
	}
1208

  
1209
	/**
1210
	 * This method initializes setLayerStyleBtn	
1211
	 * 	
1212
	 * @return javax.swing.JButton	
1213
	 */    
1214
	private JButton getSetLayerStyleBtn() {
1215
		if (setLayerStyleBtn == null) {
1216
			setLayerStyleBtn = new JButton();
1217
			setLayerStyleBtn.setBounds(183, 199, 33, 33);
1218
		}
1219
		return setLayerStyleBtn;
1220
	}
1221

  
1222
	/**
1223
	 * This method initializes deleteLayerStyleBtn	
1224
	 * 	
1225
	 * @return javax.swing.JButton	
1226
	 */    
1227
	private JButton getDeleteLayerStyleBtn() {
1228
		if (deleteLayerStyleBtn == null) {
1229
			deleteLayerStyleBtn = new JButton();
1230
			deleteLayerStyleBtn.setBounds(236, 199, 33, 33);
1231
		}
1232
		return deleteLayerStyleBtn;
1233
	}
1234

  
1235
	/**
1236
	 * Enables or disables the delete style button, and also shifts the
1237
	 * IconImage.
1238
	 * @param enabled
1239
	 */
1240
	private void setDeleteButtonEnabled(boolean enabled){
1241
		JButton btn = getDeleteLayerStyleBtn();
1242
		btn.setEnabled(enabled);
1243
		// TODO Faltan los iconos
1244
/*		if (enabled){
1245
			btn.setIcon(new ImageIcon(getClass().getClassLoader().getResource("images/delete-on.png")));
1246
		} else{
1247
			btn.setIcon(new ImageIcon(getClass().getClassLoader().getResource("images/delete-off.png")));
1248
		}*/
1249
	}
1250

  
1251
	/**
1252
	 * Enables or disables the add style button, and also shifts the
1253
	 * IconImage.
1254
	 * @param enabled
1255
	 */
1256
	private void setSetLayerStyleButtonEnabled(boolean enabled){
1257
		JButton btn = getSetLayerStyleBtn();
1258
		btn.setEnabled(enabled);
1259
		// TODO Faltan los iconos
1260
		ImageIcon icon = null;
1261
/*		if (enabled){
1262
			icon = new ImageIcon(getClass().getClassLoader().getResource("images/arrow-down-on.png"));
1263
			if (icon != null)
1264
				btn.setIcon(icon);
1265
		} else{
1266
			icon = new ImageIcon(getClass().getClassLoader().getResource("images/arrow-down-off.png"));
1267
			if (icon != null)
1268
				btn.setIcon(icon);
1269
		}*/
1270
	}
1271

  
1272
	/**
1273
	 * This method initializes cmbStyleLayers	
1274
	 * 	
1275
	 * @return javax.swing.JComboBox	
1276
	 */    
1277
	private JComboBox getCmbStyleLayers() {
1278
		if (cmbStyleLayers == null) {
1279
			cmbStyleLayers = new JComboBox();
1280
			cmbStyleLayers.setBounds(14, 25, 430, 20);
1281
			cmbStyleLayers.addItemListener(new java.awt.event.ItemListener() { 
1282
				public void itemStateChanged(java.awt.event.ItemEvent e) {    
1283
					setStyleList((WMSLayerNode)getCmbStyleLayers().getSelectedItem());
1284
				}
1285
			});
1286
		}
1287
		return cmbStyleLayers;
1288
	}
1289

  
1290
	/**
1291
	 * Sets the styles of the layer passed as the layer's title
1292
	 * 
1293
	 * @param layerTitle
1294
	 */
1295
	private void setStyleList(WMSLayerNode layer){
1296
        if (layer == null) 
1297
            return; 
1298
        ArrayList elements = ((JDnDListModel) getLstSelectedLayers().getModel()).getElements();
1299
        WMSLayerNode[] layers = (WMSLayerNode[]) elements.toArray(new WMSLayerNode[0]);
1300
        for (int i = 0; i < layers.length; i++) {
1301
			if (layers[i].getName().equals(layer.getName())){
1302
                styles = layers[i].getStyles();
1303
                if (styles == null)
1304
                    continue;
1305
                String[] styleTitles = new String[styles.size()];
1306
                for (int j=0; j < styles.size(); j++){
1307
                    WMSLayerNode.FMapWMSStyle style = (WMSLayerNode.FMapWMSStyle) styles.get(j);
1308
                    styleTitles[j] = style.title;
1309
                }
1310
				getLstLayerStyles().setModel(new FormatListModel(styleTitles));		
1311
			}
1312
		}
1313
	}
1314
}
1315

  
1316
/**
1317
 * Panel de informaci?n del Service
1318
 */
1319

  
1320
class InfoPanel extends JScrollPane {
1321
	private JTable tblInfo = null;
1322
	public InfoPanel() {
1323
		super();
1324
		setViewportView(getTblInfo());
1325
	}
1326
    /**
1327
     * This method initializes tblInfo	
1328
     * 	
1329
     * @return javax.swing.JTable	
1330
     */    
1331
    private JTable getTblInfo() {
1332
    	if (tblInfo == null) {
1333
            tblInfo = new JTable(new DefaultTableModel(0,2));
1334
            tblInfo.setRowSelectionAllowed(true);
1335
            tblInfo.setRowMargin(1);
1336
    	}
1337
    	return tblInfo;
1338
    }
1339

  
1340
    /**
1341
     * Rellena la tabla de datos de informaci?n del servicio.
1342
     * @param dataSource
1343
     */
1344
    
1345
    public void refresh(WMSWizardData dataSource) {
1346
        DefaultTableModel tbl = (DefaultTableModel) getTblInfo().getModel();
1347
        for (int i = tbl.getRowCount()-1; i >=0 ; i--) {
1348
            tbl.removeRow(i);
1349
        }
1350
        String[] row = new String[tbl.getColumnCount()];
1351
        
1352
        // No Column names
1353
        row[0] = " ";
1354
        row[1] = " ";
1355
        tbl.setColumnIdentifiers(row);
1356
        
1357
        // URL row
1358
        row[0] = PluginServices.getText(this, "servidor");
1359
        row[1] = dataSource.getHost();
1360
        tbl.addRow( row );
1361

  
1362
        // Server type row
1363
        row[0] = PluginServices.getText(this, "tipo_servidor");
1364
        row[1] = dataSource.getServerType();
1365
        tbl.addRow( row );
1366
        
1367
        // Server Title
1368
        row[0] = PluginServices.getText(this, "titulo_wms");
1369
        row[1] = dataSource.getTitle();
1370
        tbl.addRow( row );
1371
        
1372
        // Abstract
1373
        row[0] = PluginServices.getText(this, "abstract");
1374
        row[1] = dataSource.getAbstract();
1375
        tbl.addRow( row );
1376
    }
1377
    
1378

  
1379

  
1380
}

Also available in: Unified diff