× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Hi Doug,

objectClass does not require an actual class, the interface is sufficient.


To determine which class to use for objectClass you can use a new tool in
Eclipse 3.4 - Plug-in Spy.

Select a type of object you want to extend in the Remote Systems view.
Press Alt + Shift + F1. The Plug-in Spy will load up and under the
section "Active Selection", you will see the selection class and
interfaces valid for the selection. You should avoid using the concrete
selection class (as mentioned by Don) and instead focus on the interfaces
valid for the selection.

If for example we did this on a Library we would get:

The selection class:
QSYSRemoteLibrary
The interfaces valid for the selection:
IQSYSLibrary

Since you want to extend all objects, not just Library objects you can
click on the hyperlink for IQSYSLibrary to bring it up in the editor. Be
aware that the first time you do this it may take some time. Once it is
open in the editor you can see that it extends IQSYSObject and that the
location of IQSYSObject is
com.ibm.etools.iseries.services.qsys.api.IQSYSObject

If you need to go further down the hierarchy you can use the Hierarchy
view to see all the interfaces extended by pressing F4 in the editor. Use
the toolbar buttons in the view to switch how the hierarchy is shown.

Try using the above location for IQSYSObject as the objectClass again.

Some commonly used ones:

IQSYSResource -- All Objects and Members
IQSYSObject -- All Objects
IQSYSMember - Members
IQSYSFile -- All Files (Printer, Display, Source Physical, Data etc)

_____________________________________________
Kevin J Doyle
Software Developer, Rational Developer for System i
IBM Toronto Lab
Email: kjdoyle@xxxxxxxxxx



From:
"Doug Davie" <dougdavie@xxxxxxxxx>
To:
"WDSC Plugin Developers" <wdsc-plugin-dev@xxxxxxxxxxxx>
Date:
11/25/2008 11:21 AM
Subject:
Re: [Wdsc-Plugin-Dev] RDi 7.5 changes



The issue with 1 is how to determine which objectClass I should extend in
the plugin.xml objectContribution section.

I have defined an IBM i object filter
You say here to use IQSYSObject.
but I find that I must define
objectClass="com.ibm.etools.iseries.subsystems.qsys.objects.QSYSRemoteObject
Is that because IQSYSObject is an interface and I must define an actual
class?
(I do use IQSYSObject within my own class to define the object)

Is there an easy way to determine which class I should have used?
For example, QSYSRemoteObject vs.QSYSHostObject vs some other class?



On Tue, Nov 25, 2008 at 6:48 AM, Don Yantzi <yantzi@xxxxxxxxxx> wrote:

Hi Doug,

Looks like you figured most of this out, but here are some more details:

You should only be using the interfaces defined in the
com.ibm.etools.iseries.services.qsys.api package like IQSYSObject,
IQSYSMember, IQSYSSourceMember (which extends IQSYSMember). The
QSYSRemote.. vs QSYSHost... classes are an internal implementation of
those interfaces.

There is also an interface called

com.ibm.etools.iseries.subsystems.qsys.objects.IRemoteObjectContextProvider
that all objects returned by the Object subsystem will implement. From
this interface you can call:

((IRemoteObjectContextProvider) object).getRemoteObjectContext().
getObjectSubsystem();

Once you have the subsystem you can create an IBMiConnection (the follow
on to what use to be ISeriesConnection) using:

IBMiConnection.getConnection(subsystem.getHost());

I'm not sure what you are trying to figure out in question 1. Can you
not
differentiate between the Objects subsystem and IFS subsystem just based
on the underlying objects they return? The IFS subsystem will be
returning
instances of:

org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile

Don Yantzi
Technical Lead
Rational Developer for System i
IBM Toronto Lab





From:
"Doug Davie" <dougdavie@xxxxxxxxx>
To:
wdsc-plugin-dev@xxxxxxxxxxxx
Date:
11/19/2008 03:15 PM
Subject:
Re: [Wdsc-Plugin-Dev] RDi 7.5 changes



I will partially answer my own questions.

1) QSYSRemoteObject
My Plugin.xml does an object contribution with:
<objectContribution



objectClass="com.ibm.etools.iseries.subsystems.qsys.objects.QSYSRemoteObject"
So I feel this is the proper type to use.
I found this by examining the properties for the "work with objects..."
node
of my IBM i connection. I found the that Parent filter pool was
com.ibm.etools.iseries.subsystems.qsys.objects.
If I wanted my plugin to work with IFS files instead, I would examine
the
properties of the "File Systems" node under the IFS Files node. Here I
would find that the object to contribute to would be
com.ibm.etools.iseries.subsystems.ifs.files.ifs.
Does anyone have alternatives to figuring this out?

2) Use IBMiConnection for PCML connection
I knew that I had selected an object that was already existing within
the
opened connection.
I put my plugin into debug, and analyzed the variables. By drilling
down
through my object I found my connection. So I was able to do this:
import com.ibm.as400.access.AS400;
import com.ibm.etools.iseries.subsystems.qsys.api.IBMiConnection;
private AS400 as400;
private QSYSRemoteObject object;
as400 =


IBMiConnection.getConnection(object.getRemoteObjectContext().getObjectSubsystem().getHost()).getAS400ToolboxObject();
then I could create :
pcml = new ProgramCallDocument(as400......
So I had to debug to find this. Was there an easier way?

-doug


On Tue, Nov 18, 2008 at 2:20 PM, Doug Davie <dougdavie@xxxxxxxxx> wrote:

RDi version 7.5 makes some significant changes in the way things are
implemented versus earlier versions.
I would appreciate some assistance in learning how to figure some
stuff
out.

I have a plugin that extends a popup menu using
ISeriesAbstractQSYSPopupMenuExtensionAction. When I right click an
object
in my iSeries object filter and select my option, a program is called
on
the
i. The program returns some data that I show in a dialog.

The existing plugin uses ISeriesObject. From this ISeriesObject I am
able
to use getISeriesConnection and create a ProgramCallDocument(AS400
arg0,
String arg1, ClassLoader arg2) to call the program:

<relevent code>
import com.ibm.etools.iseries.core.api.ISeriesObject;
import com.ibm.as400.data.ProgramCallDocument;
private ISeriesObject dataArea;
private ProgramCallDocument pcml;
public MyPgm(ISeriesObject dataarea).... {
this.dataArea = dataArea;
pcml =


*new*ProgramCallDocument(dataArea.getISeriesConnection().getAS400ToolboxObject(Display.
*getCurrent*().getActiveShell()), "com.myplugin", *this*
.getClass().getClassLoader());


With the changes made for RDi 7.5, the existing code does not work.
I've now extended ISeriesAbstractQsysPopupMenuAction.
Neither IQSYObject nor QSYSRemoteObject provide the
getISeriesConnection
method so that I can create (use) the AS400() connection.
1) Is there a different type that I should use?
2) What is the best way to get the selected connection to pass to
ProgramCallDocuement?

I have other plugins that I will be working on.
4) How can I tell if I want to use QSYSRemoteObject, QSYSHostMember,
QSYSHostSourceMember, QSYSRemoteMember, IQSYSObject, etc?
3) How would I know this information? Is there a document that I'm
missing? Am I looking at the wrong websites for info?



Thank you
-doug

--
This is the WDSC Plugin Developers (Wdsc-Plugin-Dev) mailing list
To post a message email: Wdsc-Plugin-Dev@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/wdsc-plugin-dev
or email: Wdsc-Plugin-Dev-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/wdsc-plugin-dev.


--
This is the WDSC Plugin Developers (Wdsc-Plugin-Dev) mailing list
To post a message email: Wdsc-Plugin-Dev@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/wdsc-plugin-dev
or email: Wdsc-Plugin-Dev-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/wdsc-plugin-dev.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.