Revision 6356 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/TableManageFields.java

View differences:

TableManageFields.java
46 46
 */
47 47
package com.iver.cit.gvsig;
48 48

  
49
import java.util.BitSet;
50

  
51 49
import com.iver.andami.PluginServices;
52
import com.iver.andami.messages.NotificationManager;
53 50
import com.iver.andami.plugins.Extension;
54
import com.iver.andami.preferences.DlgPreferences;
55 51
import com.iver.andami.ui.mdiManager.View;
56
import com.iver.cit.gvsig.fmap.DriverException;
57
import com.iver.cit.gvsig.fmap.edition.IFieldManager;
52
import com.iver.cit.gvsig.fmap.edition.EditableAdapter;
53
import com.iver.cit.gvsig.fmap.edition.IEditableSource;
58 54
import com.iver.cit.gvsig.fmap.edition.IWriteable;
59 55
import com.iver.cit.gvsig.fmap.edition.IWriter;
60
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource;
61 56
import com.iver.cit.gvsig.gui.Table;
62 57
import com.iver.cit.gvsig.gui.dialogs.DlgFieldManager;
63 58
import com.iver.cit.gvsig.project.ProjectTable;
......
78 73

  
79 74
	    Table t = (Table) v;
80 75
	    ProjectTable pt = t.getModel();
81
	    SelectableDataSource dataSource;
82
			dataSource = pt.getModelo().getRecordset();
83
		    if (dataSource.getDriver() instanceof IWriteable)
84
		    {
85
		    	IWriteable aux = (IWriteable) dataSource.getDriver();
86
		    	IWriter writer = aux.getWriter();
87
		    	// No todos los writer pueden cambiar los campos (ejemplo: el dxf
88
		    	// o el dgn siempre tienen los mismos campos).
89
		    	if (writer instanceof IFieldManager)
90
		    	{
91
		    		IFieldManager fieldManager = (IFieldManager) writer;
92
		    		DlgFieldManager dlg = new DlgFieldManager(fieldManager);
93
		    		PluginServices.getMDIManager().addView(dlg);
94
		    	}
95
		    }
76
	    IEditableSource ies = pt.getModelo();
77
	    if (ies.getDriver() instanceof IWriteable)
78
	    {
79
	    	IWriteable aux = (IWriteable) ies.getDriver();
80
	    	IWriter writer = aux.getWriter();
81
	    	// No todos los writer pueden cambiar los campos (ejemplo: el dxf
82
	    	// o el dgn siempre tienen los mismos campos).
83
	    	if (writer.canAlterTable())
84
	    	{
85
//	    		IFieldManager fieldManager = (IFieldManager) writer;
86
	    		DlgFieldManager dlg = new DlgFieldManager(ies);
87
	    		PluginServices.getMDIManager().addView(dlg);
88
	    	}
89
	    }
96 90
		    
97 91
	}
98 92

  
......
111 105

  
112 106
		if (v instanceof Table) {
113 107
		    Table t = (Table) v;
114
		    ProjectTable pt = t.getModel();
115
		    SelectableDataSource dataSource;
116
				dataSource = pt.getModelo().getRecordset();
117
			    if (dataSource.getDriver() instanceof IWriteable)
118
			    {
119
			    	IWriteable aux = (IWriteable) dataSource.getDriver();
120
			    	IWriter writer = aux.getWriter();
121
			    	if (writer instanceof IFieldManager)
122
			    		return true;
123
			    }
124
				
125
		    
108
		    IEditableSource ies = t.getModel().getModelo(); 
109
//		    ProjectTable pt = t.getModel();
110
		    if (ies.getDriver() instanceof IWriteable)
111
		    {
112
		    	IWriter writer = ((IWriteable) ies.getDriver()).getWriter();
113
				if ((writer != null) && (writer.canAlterTable()))
114
				{
115
					if (ies.isEditing())
116
					{
117
						return true;
118
					}
119
				}
120
		    }		    
126 121
		}
127 122
		return false;
128 123
    }

Also available in: Unified diff