Good morning again, Giovanni.
You should add them to the DisegnaPoligonoExtension install method:
public void install( PlugInContext context ) throws Exception {
DelegatingTool delPolygonTool = (DelegatingTool)
MyCursorTool.create(context.getWorkbenchContext());
drawPolygonTool = (MyCursorTool) delPolygonTool.getDelegate();
context.getWorkbenchFrame().getToolBar().addCursorTool(drawPolygonTool.getName(),
delPolygonTool, MyCursorTool.createEnableCheck(context.getWorkbenchContext(),drawPolygonTool));
}
Regards,
Giovanni Virdis escribió:
I have created the following class:
public class DisegnaPoligono extends DrawPolygonTool {
/** Nome Plugin */
public final static String NAME = "Nuovo Poligono";
/** Icona Plugin */
public final static Icon ICON = IconLoader.icon("DrawPolygon.gif");
public String getName() {
return NAME;
}
public Icon getIcon() {
return ICON;
}
protected DisegnaPoligono(FeatureDrawingUtil featureDrawingUtil)
{
super(featureDrawingUtil);
}
public static CursorTool create( LayerNamePanelProxy layerNamePanelProxy )
{
FeatureDrawingUtil featureDrawingUtil = new
FeatureDrawingUtil(layerNamePanelProxy);
return featureDrawingUtil.prepare(new
DisegnaPoligono(featureDrawingUtil), true);
}
protected void gestureFinished() throws Exception
{
reportNothingToUndoYet();
String message =createEnableCheck(getWorkbench().getContext(),this).check(null);
if(message != null)
{
getWorkbench().getFrame().warnUser(message);
return;
}
if (!checkPolygon()) {
return;
}
// Here an add edit transaction is created, you can get the drawed
polygon with the method getPolygon()
featureDrawingUtil.drawRing(getPolygon(),isRollingBackInvalidEdits(),
this, getPanel());
// If you want to open a custom dialog or something else, change the
previous line and open your dialog
// After that, if the dialog has finished correctly, add your feature to
the editable layer.
}
}
where I put the code lines that you have sended me
" DelegatingTool delPolygonTool = (DelegatingTool)
MyCursorTool.create(toolbox.getContext());
drawPolygonTool = (MyCursorTool) delPolygonTool.getDelegate();
context.getWorkbenchFrame().getToolBar().addCursorTool(drawPolygonTool.getName(),
delPolygonTool,
MyCursorTool.createEnableCheck(context.getWorkbenchContext(),drawPolygonTool));"
to associate the button to the toolbar
Message: 3
Date: Mon, 28 Apr 2008 11:54:18 +0200
From: Sergio Baños Calvo <[EMAIL PROTECTED]>
Subject: Re: [Kosmo] R: Resumen de Kosmo, Vol 24, Envío 31 (Extending
the drawPolygon tool)
To: Lista de Kosmo <[email protected]>
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Good morning Giovanni.
I think there is a concept that should be clarified:
PlugIns -> Menu items and toolbar buttons that executes an action
Tools -> Activates a cursor with an associated funcionality
In the example that you sent the two concepts are mixed in one. The
functionality that you're trying to develop uses a cursor to draw the
polygon, so a tool should be used. You should change your code and
redefine only the methods getName() and getIcon() (to use the ones that
you have indicated) and the gestureFinished() and create() methods:
public static CursorTool create( LayerNamePanelProxy
layerNamePanelProxy ) {
FeatureDrawingUtil featureDrawingUtil = new
FeatureDrawingUtil(layerNamePanelProxy);
return featureDrawingUtil.prepare(new
MyCursorTool(featureDrawingUtil), true);
}
protected void gestureFinished() throws Exception {
reportNothingToUndoYet();
String message =
createEnableCheck(getWorkbench().getContext(),this).check(null);
if(message != null)
{
getWorkbench().getFrame().warnUser(message);
return;
}
if (!checkPolygon()) {
return;
}
// Here an add edit transaction is created, you can get the
drawed polygon with the method getPolygon()
featureDrawingUtil.drawRing(getPolygon(),
isRollingBackInvalidEdits(), this, getPanel());
// If you want to open a custom dialog or something else, change
the previous line and open your dialog
// After that, if the dialog has finished correctly, add your
feature to the editable layer.
}
Your class must only extend the DrawPolygonTool class and must no
implement PlugIn.
In order to add the tool to the main toolbar, use this:
DelegatingTool delPolygonTool = (DelegatingTool)
MyCursorTool.create(toolbox.getContext());
drawPolygonTool = (MyCursorTool) delPolygonTool.getDelegate();
context.getWorkbenchFrame().getToolBar().addCursorTool(drawPolygonTool.getName(),
delPolygonTool,
MyCursorTool.createEnableCheck(context.getWorkbenchContext(),drawPolygonTool));
Hope this helps.
Regards,
_______________________________________________
Kosmo mailing list
[email protected]
http://lists.saig.es/mailman/listinfo/kosmo
--
Sergio Baños Calvo
Jefe de desarrollos
Sistemas Abiertos de Información Geográfica, S.L. (SAIG S.L.)
Tlfno. móvil: 685005960
Tlfno. fijo: (+34) 954788876
E-mail: [EMAIL PROTECTED]
_______________________________________________
Kosmo mailing list
[email protected]
http://lists.saig.es/mailman/listinfo/kosmo