Revision 29
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.insertpoint/src/main/java/org/gvsig/vectorediting/lib/prov/insertpoint/InsertPointEditingProviderFactory.java | ||
---|---|---|
6 | 6 |
*/ |
7 | 7 |
package org.gvsig.vectorediting.lib.prov.insertpoint; |
8 | 8 |
|
9 |
import org.gvsig.fmap.geom.Geometry; |
|
9 | 10 |
import org.gvsig.tools.ToolsLocator; |
10 | 11 |
import org.gvsig.tools.dynobject.DynClass; |
11 | 12 |
import org.gvsig.tools.dynobject.DynObject; |
... | ... | |
14 | 15 |
import org.gvsig.tools.service.spi.ProviderServices; |
15 | 16 |
import org.gvsig.vectorediting.lib.api.EditingServiceInfo; |
16 | 17 |
import org.gvsig.vectorediting.lib.api.EditingServiceParameter; |
18 |
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceinfo; |
|
17 | 19 |
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory; |
18 | 20 |
|
19 | 21 |
public class InsertPointEditingProviderFactory extends AbstractProviderFactory implements |
... | ... | |
42 | 44 |
} |
43 | 45 |
|
44 | 46 |
public EditingServiceInfo getServiceInfo() { |
45 |
// TODO Auto-generated method stub |
|
46 |
return null; |
|
47 |
EditingServiceInfo serviceInfo = new DefaultEditingServiceinfo( |
|
48 |
PROVIDER_NAME, |
|
49 |
"", |
|
50 |
true, |
|
51 |
null, |
|
52 |
null, |
|
53 |
new int[]{Geometry.TYPES.POINT, Geometry.TYPES.MULTIPOINT}); |
|
54 |
|
|
55 |
return serviceInfo; |
|
47 | 56 |
} |
48 | 57 |
|
49 | 58 |
public EditingServiceParameter getServiceParameterInfo() { |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.circle2P/src/main/java/org/gvsig/vectorediting/lib/prov/circle2P/Circle2PEditingProviderFactory.java | ||
---|---|---|
6 | 6 |
*/ |
7 | 7 |
package org.gvsig.vectorediting.lib.prov.circle2P; |
8 | 8 |
|
9 |
import org.gvsig.fmap.geom.Geometry; |
|
9 | 10 |
import org.gvsig.tools.ToolsLocator; |
10 | 11 |
import org.gvsig.tools.dynobject.DynClass; |
11 | 12 |
import org.gvsig.tools.dynobject.DynObject; |
... | ... | |
14 | 15 |
import org.gvsig.tools.service.spi.ProviderServices; |
15 | 16 |
import org.gvsig.vectorediting.lib.api.EditingServiceInfo; |
16 | 17 |
import org.gvsig.vectorediting.lib.api.EditingServiceParameter; |
18 |
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceinfo; |
|
17 | 19 |
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory; |
18 | 20 |
|
19 |
|
|
20 | 21 |
public class Circle2PEditingProviderFactory extends AbstractProviderFactory |
21 | 22 |
implements EditingProviderFactory { |
22 |
|
|
23 |
|
|
23 | 24 |
public static final String PROVIDER_NAME = "Circle2P"; |
24 | 25 |
|
25 | 26 |
public static final String PROVIDER_NAME_PARAMS = "Circle2PParams"; |
26 | 27 |
|
27 | 28 |
public static final String PROVIDER_NAME_PARAMS_DESCRIPTION = ""; |
28 |
|
|
29 |
|
|
29 | 30 |
private DynClass dynclass; |
30 | 31 |
|
31 | 32 |
public void initialize() { |
... | ... | |
38 | 39 |
} |
39 | 40 |
|
40 | 41 |
public EditingServiceInfo getServiceInfo() { |
41 |
// TODO Auto-generated method stub |
|
42 |
return null; |
|
42 |
EditingServiceInfo serviceInfo = new DefaultEditingServiceinfo( |
|
43 |
PROVIDER_NAME, |
|
44 |
"", |
|
45 |
true, |
|
46 |
null, |
|
47 |
null, |
|
48 |
new int[]{Geometry.TYPES.CIRCLE, Geometry.TYPES.MULTISURFACE}); |
|
49 |
|
|
50 |
return serviceInfo; |
|
43 | 51 |
} |
44 | 52 |
|
45 | 53 |
public EditingServiceParameter getServiceParameterInfo() { |
... | ... | |
49 | 57 |
|
50 | 58 |
@Override |
51 | 59 |
protected Provider doCreate(DynObject parameters, ProviderServices services) { |
52 |
return new Circle2PEditingProvider(services,parameters); |
|
60 |
return new Circle2PEditingProvider(services, parameters);
|
|
53 | 61 |
} |
54 |
|
|
62 |
|
|
55 | 63 |
public DynObject createParameters() { |
56 | 64 |
DynObject dynobject = ToolsLocator.getDynObjectManager().createDynObject( |
57 | 65 |
dynclass); |
... | ... | |
64 | 72 |
protected DynClass createParametersDynClass() { |
65 | 73 |
return null; |
66 | 74 |
} |
67 |
|
|
75 |
|
|
68 | 76 |
public String getName() { |
69 | 77 |
return this.PROVIDER_NAME; |
70 | 78 |
} |
71 | 79 |
|
72 |
|
|
73 | 80 |
} |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.api/src/main/java/org/gvsig/vectorediting/lib/api/EditingManager.java | ||
---|---|---|
11 | 11 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
12 | 12 |
import org.gvsig.fmap.mapcontrol.MapControl; |
13 | 13 |
import org.gvsig.tools.service.Manager; |
14 |
import org.gvsig.tools.service.ServiceException; |
|
14 | 15 |
|
15 | 16 |
public interface EditingManager extends Manager { |
16 | 17 |
|
... | ... | |
18 | 19 |
* @param serviceName |
19 | 20 |
* @return |
20 | 21 |
*/ |
21 |
public EditingServiceInfo getServiceInfo(String serviceName); |
|
22 |
public EditingServiceInfo getServiceInfo(String serviceName) throws ServiceException;
|
|
22 | 23 |
|
23 | 24 |
/** |
24 | 25 |
* @param name |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.api/src/main/java/org/gvsig/vectorediting/lib/api/EditingServiceInfo.java | ||
---|---|---|
31 | 31 |
/** |
32 | 32 |
* @return |
33 | 33 |
*/ |
34 |
public int getSupportedPrimitiveGeometryType();
|
|
34 |
public int[] getSupportedPrimitiveGeometryTypes();
|
|
35 | 35 |
|
36 | 36 |
/** |
37 | 37 |
* @return |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.spi/src/main/java/org/gvsig/vectorediting/lib/spi/EditingProviderManager.java | ||
---|---|---|
6 | 6 |
*/ |
7 | 7 |
package org.gvsig.vectorediting.lib.spi; |
8 | 8 |
|
9 |
import org.gvsig.tools.service.ServiceException; |
|
10 |
import org.gvsig.tools.service.spi.NotRegisteredException; |
|
11 |
import org.gvsig.tools.service.spi.ParametersException; |
|
9 | 12 |
import org.gvsig.tools.service.spi.ProviderManager; |
13 |
import org.gvsig.vectorediting.lib.api.EditingServiceInfo; |
|
10 | 14 |
|
11 | 15 |
|
12 | 16 |
public interface EditingProviderManager extends ProviderManager{ |
17 |
|
|
18 |
/** |
|
19 |
* |
|
20 |
* @param name |
|
21 |
* @return |
|
22 |
* @throws ParametersException |
|
23 |
* @throws NotRegisteredException |
|
24 |
*/ |
|
25 |
public EditingServiceInfo getServiceInfo(String name) throws ServiceException ; |
|
13 | 26 |
|
14 | 27 |
} |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.spi/src/main/java/org/gvsig/vectorediting/lib/spi/DefaultEditingServiceinfo.java | ||
---|---|---|
9 | 9 |
import java.awt.Image; |
10 | 10 |
import java.util.List; |
11 | 11 |
|
12 |
import org.gvsig.fmap.geom.Geometry; |
|
12 | 13 |
import org.gvsig.vectorediting.lib.api.EditingServiceInfo; |
13 | 14 |
import org.gvsig.vectorediting.lib.api.EditingServiceParameter; |
14 | 15 |
|
... | ... | |
24 | 25 |
|
25 | 26 |
private List<EditingServiceParameter> parameters; |
26 | 27 |
|
27 |
private int supportedPrimitiveGeometryType; |
|
28 |
private int[] supportedPrimitiveGeometryType;
|
|
28 | 29 |
|
29 | 30 |
public DefaultEditingServiceinfo(String name, String description, |
30 | 31 |
boolean createsNewGeometries, Image mouseCursor, |
31 | 32 |
List<EditingServiceParameter> parameters, |
32 |
int supportedPrimitiveGeometryType) { |
|
33 |
int[] supportedPrimitiveGeometryType) {
|
|
33 | 34 |
super(); |
34 | 35 |
this.name = name; |
35 | 36 |
this.description = description; |
... | ... | |
64 | 65 |
return this.parameters; |
65 | 66 |
} |
66 | 67 |
|
67 |
public int getSupportedPrimitiveGeometryType() {
|
|
68 |
public int[] getSupportedPrimitiveGeometryTypes() {
|
|
68 | 69 |
// TODO Auto-generated method stub |
69 | 70 |
return this.supportedPrimitiveGeometryType; |
70 | 71 |
} |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingManager.java | ||
---|---|---|
16 | 16 |
import org.gvsig.fmap.mapcontrol.MapControlLocator; |
17 | 17 |
import org.gvsig.fmap.mapcontrol.tools.Behavior.Behavior; |
18 | 18 |
import org.gvsig.tools.dynobject.DynObject; |
19 |
import org.gvsig.tools.locator.LocatorException; |
|
19 | 20 |
import org.gvsig.tools.service.AbstractManager; |
20 | 21 |
import org.gvsig.tools.service.Service; |
21 | 22 |
import org.gvsig.tools.service.ServiceException; |
23 |
import org.gvsig.tools.service.spi.NotRegisteredException; |
|
24 |
import org.gvsig.tools.service.spi.ParametersException; |
|
22 | 25 |
import org.gvsig.utils.console.jedit.JEditTextArea; |
23 | 26 |
import org.gvsig.vectorediting.lib.api.EditingBehavior; |
24 | 27 |
import org.gvsig.vectorediting.lib.api.EditingManager; |
... | ... | |
49 | 52 |
return new DefaultEditingService(provider); |
50 | 53 |
} |
51 | 54 |
|
52 |
public EditingServiceInfo getServiceInfo(String toolName) { |
|
53 |
// TODO Auto-generated method stub |
|
54 |
return null; |
|
55 |
public EditingServiceInfo getServiceInfo(String toolName) throws ServiceException{ |
|
56 |
return EditingProviderLocator.getProviderManager().getServiceInfo(toolName); |
|
55 | 57 |
} |
56 | 58 |
|
57 | 59 |
public void activateTool(String name, MapControl mapControl) { |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingProviderManager.java | ||
---|---|---|
10 | 10 |
import org.gvsig.tools.service.Service; |
11 | 11 |
import org.gvsig.tools.service.ServiceException; |
12 | 12 |
import org.gvsig.tools.service.spi.AbstractProviderManager; |
13 |
import org.gvsig.tools.service.spi.NotRegisteredException; |
|
14 |
import org.gvsig.tools.service.spi.ParametersException; |
|
13 | 15 |
import org.gvsig.tools.service.spi.Provider; |
14 | 16 |
import org.gvsig.tools.service.spi.ProviderFactory; |
15 | 17 |
import org.gvsig.tools.service.spi.ProviderServices; |
18 |
import org.gvsig.vectorediting.lib.api.EditingServiceInfo; |
|
16 | 19 |
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory; |
17 | 20 |
import org.gvsig.vectorediting.lib.spi.EditingProviderManager; |
18 | 21 |
|
... | ... | |
45 | 48 |
return factory == null ? null : factory.create(serviceParameters, |
46 | 49 |
providerServices); |
47 | 50 |
} |
51 |
|
|
52 |
public EditingServiceInfo getServiceInfo(String name) throws ServiceException { |
|
53 |
// TODO Auto-generated method stub |
|
54 |
EditingProviderFactory factory = (EditingProviderFactory) getProviderFactory(name); |
|
55 |
return (factory == null ? null : factory.getServiceInfo()); |
|
56 |
} |
|
48 | 57 |
} |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.app/org.gvsig.vectorediting.app.mainplugin/src/main/java/org/gvsig/vectorediting/app/mainplugin/BaseEditingServiceExtension.java | ||
---|---|---|
10 | 10 |
import org.gvsig.andami.plugins.Extension; |
11 | 11 |
import org.gvsig.app.project.documents.view.ViewDocument; |
12 | 12 |
import org.gvsig.app.project.documents.view.gui.DefaultViewPanel; |
13 |
import org.gvsig.fmap.dal.exception.ReadException; |
|
14 |
import org.gvsig.fmap.geom.Geometry; |
|
15 |
import org.gvsig.fmap.geom.GeometryLocator; |
|
16 |
import org.gvsig.fmap.geom.type.GeometryType; |
|
17 |
import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException; |
|
18 |
import org.gvsig.fmap.geom.type.GeometryTypeNotValidException; |
|
13 | 19 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
14 | 20 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
21 |
import org.gvsig.tools.service.ServiceException; |
|
15 | 22 |
import org.gvsig.vectorediting.lib.api.EditingLocator; |
16 | 23 |
import org.gvsig.vectorediting.lib.api.EditingManager; |
24 |
import org.gvsig.vectorediting.lib.api.EditingServiceInfo; |
|
17 | 25 |
|
26 |
public abstract class BaseEditingServiceExtension extends Extension { |
|
18 | 27 |
|
19 |
public abstract class BaseEditingServiceExtension extends Extension{ |
|
20 |
|
|
21 | 28 |
/** |
22 | 29 |
* |
23 | 30 |
*/ |
24 | 31 |
private static final long serialVersionUID = -6005105101114750889L; |
25 |
|
|
32 |
|
|
26 | 33 |
protected final EditingManager manager = EditingLocator.getManager(); |
27 | 34 |
|
28 | 35 |
protected DefaultViewPanel getActiveView() { |
... | ... | |
35 | 42 |
|
36 | 43 |
return null; |
37 | 44 |
} |
38 |
|
|
45 |
|
|
39 | 46 |
protected boolean canBeEdited(FLyrVect layer) { |
40 | 47 |
if (layer != null) { |
41 | 48 |
boolean isWritable = layer.isWritable(); |
... | ... | |
45 | 52 |
} |
46 | 53 |
return false; |
47 | 54 |
} |
48 |
|
|
55 |
|
|
49 | 56 |
protected FLyrVect getActiveLayer(DefaultViewPanel vista) { |
50 | 57 |
if (vista != null) { |
51 | 58 |
ViewDocument viewDocument = vista.getViewDocument(); |
... | ... | |
57 | 64 |
} |
58 | 65 |
return null; |
59 | 66 |
} |
67 |
|
|
68 |
private boolean isApplicable(GeometryType[] supportedTypes, GeometryType geometryType) { |
|
69 |
if (supportedTypes != null) { |
|
70 |
for (int i = 0; i < supportedTypes.length; i++) { |
|
71 |
if (supportedTypes[i].isTypeOf(geometryType)) { |
|
72 |
return true; |
|
73 |
} |
|
74 |
} |
|
75 |
} |
|
76 |
return false; |
|
77 |
} |
|
78 |
|
|
79 |
protected boolean isApplicable(GeometryType[] supportedTypes, int shapeType) { |
|
80 |
GeometryType type = loadGeometryType(shapeType, Geometry.SUBTYPES.GEOM2D); |
|
81 |
return isApplicable(supportedTypes, type); |
|
82 |
} |
|
83 |
|
|
84 |
protected GeometryType[] loadGeometryTypes(int[] types) { |
|
85 |
GeometryType[] supportedTypes = null; |
|
86 |
if (types == null) { |
|
87 |
supportedTypes = new GeometryType[0]; |
|
88 |
} |
|
89 |
else { |
|
90 |
supportedTypes = new GeometryType[types.length]; |
|
91 |
for (int i = 0; i < types.length; i++) { |
|
92 |
supportedTypes[i] = loadGeometryType(types[i], Geometry.SUBTYPES.GEOM2D); |
|
93 |
} |
|
94 |
} |
|
95 |
return supportedTypes; |
|
96 |
} |
|
97 |
|
|
98 |
private GeometryType loadGeometryType(int type, int subtype) { |
|
99 |
try { |
|
100 |
return GeometryLocator.getGeometryManager() |
|
101 |
.getGeometryType(type, subtype); |
|
102 |
} |
|
103 |
catch (GeometryTypeNotSupportedException e) { |
|
104 |
throw new RuntimeException("Error getting the Geometry type with type = " |
|
105 |
+ type + ", subtype = " + subtype, e); |
|
106 |
} |
|
107 |
catch (GeometryTypeNotValidException e) { |
|
108 |
throw new RuntimeException("Error getting the Geometry type with type = " |
|
109 |
+ type + ", subtype = " + subtype, e); |
|
110 |
} |
|
111 |
} |
|
112 |
|
|
60 | 113 |
} |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.app/org.gvsig.vectorediting.app.mainplugin/src/main/java/org/gvsig/vectorediting/app/mainplugin/extensions/Circle2PExtension.java | ||
---|---|---|
8 | 8 |
|
9 | 9 |
import org.gvsig.andami.IconThemeHelper; |
10 | 10 |
import org.gvsig.app.project.documents.view.gui.DefaultViewPanel; |
11 |
import org.gvsig.fmap.dal.exception.ReadException; |
|
12 |
import org.gvsig.fmap.geom.type.GeometryType; |
|
11 | 13 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
14 |
import org.gvsig.tools.service.ServiceException; |
|
12 | 15 |
import org.gvsig.vectorediting.app.mainplugin.BaseEditingServiceExtension; |
16 |
import org.gvsig.vectorediting.lib.api.EditingServiceInfo; |
|
13 | 17 |
|
18 |
public class Circle2PExtension extends BaseEditingServiceExtension { |
|
14 | 19 |
|
15 |
public class Circle2PExtension extends BaseEditingServiceExtension{ |
|
16 |
|
|
17 | 20 |
public void initialize() { |
18 | 21 |
// TODO Auto-generated method stub |
19 |
|
|
22 |
|
|
20 | 23 |
} |
21 | 24 |
|
22 | 25 |
public void execute(String arg0) { |
... | ... | |
32 | 35 |
} |
33 | 36 |
|
34 | 37 |
public boolean isEnabled() { |
35 |
// TODO Auto-generated method stub |
|
36 |
return true; |
|
38 |
EditingServiceInfo Circle2PInfo; |
|
39 |
try { |
|
40 |
Circle2PInfo = manager.getServiceInfo("Circle2P"); |
|
41 |
DefaultViewPanel view = getActiveView(); |
|
42 |
FLyrVect layer = getActiveLayer(view); |
|
43 |
|
|
44 |
int[] supportedTypes = Circle2PInfo.getSupportedPrimitiveGeometryTypes(); |
|
45 |
GeometryType[] supportedGeoTypes = loadGeometryTypes(supportedTypes); |
|
46 |
|
|
47 |
if (isApplicable(supportedGeoTypes, layer.getShapeType())) { |
|
48 |
return true; |
|
49 |
} |
|
50 |
|
|
51 |
return false; |
|
52 |
|
|
53 |
} |
|
54 |
catch (ServiceException e1) { |
|
55 |
// TODO Auto-generated catch block |
|
56 |
e1.printStackTrace(); |
|
57 |
} |
|
58 |
catch (ReadException e) { |
|
59 |
// TODO Auto-generated catch block |
|
60 |
e.printStackTrace(); |
|
61 |
} |
|
62 |
return false; |
|
37 | 63 |
} |
38 | 64 |
|
39 | 65 |
public boolean isVisible() { |
... | ... | |
47 | 73 |
return false; |
48 | 74 |
} |
49 | 75 |
|
50 |
|
|
51 |
|
|
52 | 76 |
} |
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.app/org.gvsig.vectorediting.app.mainplugin/src/main/java/org/gvsig/vectorediting/app/mainplugin/extensions/InsertPointExtension.java | ||
---|---|---|
8 | 8 |
|
9 | 9 |
import org.gvsig.andami.IconThemeHelper; |
10 | 10 |
import org.gvsig.app.project.documents.view.gui.DefaultViewPanel; |
11 |
import org.gvsig.fmap.dal.exception.ReadException; |
|
12 |
import org.gvsig.fmap.geom.type.GeometryType; |
|
11 | 13 |
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect; |
14 |
import org.gvsig.tools.service.ServiceException; |
|
12 | 15 |
import org.gvsig.vectorediting.app.mainplugin.BaseEditingServiceExtension; |
16 |
import org.gvsig.vectorediting.lib.api.EditingServiceInfo; |
|
13 | 17 |
|
14 | 18 |
public class InsertPointExtension extends BaseEditingServiceExtension { |
15 | 19 |
|
... | ... | |
36 | 40 |
} |
37 | 41 |
|
38 | 42 |
public boolean isEnabled() { |
39 |
// TODO Auto-generated method stub |
|
40 |
return true; |
|
43 |
EditingServiceInfo insertPointInfo; |
|
44 |
try { |
|
45 |
insertPointInfo = manager.getServiceInfo("InsertPoint"); |
|
46 |
DefaultViewPanel view = getActiveView(); |
|
47 |
FLyrVect layer = getActiveLayer(view); |
|
48 |
|
|
49 |
int[] supportedTypes = insertPointInfo |
|
50 |
.getSupportedPrimitiveGeometryTypes(); |
|
51 |
GeometryType[] supportedGeoTypes = loadGeometryTypes(supportedTypes); |
|
52 |
|
|
53 |
if (isApplicable(supportedGeoTypes, layer.getShapeType())) { |
|
54 |
return true; |
|
55 |
} |
|
56 |
|
|
57 |
return false; |
|
58 |
|
|
59 |
} |
|
60 |
catch (ServiceException e1) { |
|
61 |
// TODO Auto-generated catch block |
|
62 |
e1.printStackTrace(); |
|
63 |
} |
|
64 |
catch (ReadException e) { |
|
65 |
// TODO Auto-generated catch block |
|
66 |
e.printStackTrace(); |
|
67 |
} |
|
68 |
return false; |
|
41 | 69 |
} |
42 | 70 |
|
43 | 71 |
public boolean isVisible() { |
... | ... | |
50 | 78 |
} |
51 | 79 |
return false; |
52 | 80 |
} |
53 |
|
|
54 | 81 |
} |
Also available in: Unified diff