[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [udig-devel] menu paths etc for new operations
|
Thanks Jesse
I can't control where the categories go in the operations menu. Or
alternatively if I create a new Action Set > menu (e.g. "Sample Menu"),
and then use that as the menuPath for the new Operation, it just ends up
on the menu bar, not in the new menu. Actually, the new menu doesn't
even show up at all!
Murray
Jesse Eichar wrote:
On 15-Jan-07, at 6:54 AM, Murray Richardson wrote:
Hope you all had a good weekend!
Trying to wrap up a project and have a few last minute questions if
anyone might be able to help:
(1) I haven't been able to figure out the menu paths to use for new
operations. What are they? Also - is it possible to have new
subcategories within new categories to better organize operations?
Finally, is it possible to put new Operations into a new Menu
altogether (not Operations), but still have them accessible under the
Operations menu accessed by right-clicking layers?
That is an optional attribute by default operations will be in the
Operation Menu in the category that was declared in the extension
definition. The Menu path allows one to place the operation else
where. You can find most of the options in the Constants class. Look at:
http://svn.geotools.org/udig/branches/1.1.x/udig/plugins/net.refractions.udig.ui/src/net/refractions/udig/ui/Constants.java
(2) Is it possible to reset a postGIS service listed in the catalog from
within an operation? If so, how?
Its not nice... Here's a snippet from the Reset action:
public static void reset( IService original, IProgressMonitor
monitor ) {
IServiceFactory locator =
CatalogPlugin.getDefault().getServiceFactory();
ICatalog connections = CatalogPlugin.getDefault().getLocalCatalog();
try {
final URL ID = original.getIdentifier();
CatalogUIPlugin.trace("Reset service " +
original.getIdentifier()); //$NON-NLS-1$
Map<java.lang.String, java.io.Serializable>
connectionParams = original
.getConnectionParams();
IService replacement = null; // unknown
TEST: for( IService candidate : locator.acquire(ID,
connectionParams) ) {
try {
CatalogUIPlugin.trace(ID + " : connecting");
//$NON-NLS-1$
IServiceInfo info = candidate.getInfo(monitor);
CatalogUIPlugin.trace(ID + " : found " +
info.getTitle()); //$NON-NLS-1$
replacement = candidate;
break TEST;
} catch (Throwable t) {
CatalogUIPlugin.trace(ID + " : ... " +
t.getLocalizedMessage()); //$NON-NLS-1$
}
}
if (replacement == null) {
return; // not available - should update existing
service to error?
}
connections.replace(ID, replacement);
} catch (Throwable failed) {
CatalogUIPlugin.log("Reset failed", failed); //$NON-NLS-1$
}
}
(3) Is it possible to have more than one target class for an
operation? e.g. How do I make an operation apply to resources in the
catalog view, such as a table in a postGIS service, as well as layers
in the Project view?
Hmmm. If I think you will have to do it in a 2 step process. A Layer
will adapt to anything a IGeoResource will adapt to. So if your
operation operates on a FeatureSource then it will work on both an
IGeoResource or a Layer. There are two ways to do this the easy way and
the more correct way:
Easy:
Make the target a java.sql.Connection. Currenlty only PostGis will
resolve to SQL. But the PostGis Service does too so this will allow the
operation to be run on a PostGisService
Correct:
What you can do is make a net.refractions.udig.catalog.resolvers
extension so that PostGis GeoResources will resolve to some interface of
your choosing. Then set the target of your operation to be that
interface.
See http://udig.refractions.net/docs/api-udig/extension-points/net_refractions_udig_catalog_resolvers.html
for more info on the Resolvers extension point
Thanks!
Murray
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
------------------------------------------------------------------------
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.16.12/628 - Release Date: 1/15/2007 11:04 AM