use of org.eclipse.ecf.pubsub.IPublishedServiceDirectory in project ecf by eclipse.
the class PubSubAdapterFactory method getDirectory.
protected IPublishedServiceDirectory getDirectory(ISharedObjectContainer container) {
ID directoryID;
try {
directoryID = IDFactory.getDefault().createStringID(PublishedServiceDirectory.SHARED_OBJECT_ID);
} catch (IDCreateException e) {
throw new RuntimeException(e);
}
final ISharedObjectManager mgr = container.getSharedObjectManager();
IPublishedServiceDirectory directory = (IPublishedServiceDirectory) mgr.getSharedObject(directoryID);
if (directory != null)
return directory;
try {
SharedObjectDescription desc = createDirectoryDescription(directoryID);
mgr.createSharedObject(desc);
return (IPublishedServiceDirectory) mgr.getSharedObject(directoryID);
} catch (SharedObjectCreateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
use of org.eclipse.ecf.pubsub.IPublishedServiceDirectory in project ecf by eclipse.
the class PubSubView method init.
public void init(IViewSite site) throws PartInitException {
super.init(site);
final Action shareSomethingAction = new Action("Share something") {
public void run() {
try {
IMasterModel sds = SharedModelFactory.getInstance().createSharedDataSource(container, IDFactory.getDefault().createGUID(), new AppendableList(), ListAppender.ID);
if (sds == null)
MessageDialog.openError(getSite().getShell(), "Error", "Could not share anything.");
else {
sharedLists.add(sds);
sharedListViewer.add(sds);
}
} catch (SharedObjectCreateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IDCreateException e) {
throw new RuntimeException(e);
}
}
};
shareSomethingAction.setEnabled(false);
IMenuManager mgr = site.getActionBars().getMenuManager();
mgr.add(new Action("Start") {
public void run() {
container = CollabClient.getContainer(ResourcesPlugin.getWorkspace().getRoot());
if (container == null) {
MessageDialog.openError(getSite().getShell(), "Error", "Collaboration environment not found.");
return;
}
IPublishedServiceDirectory directory = (IPublishedServiceDirectory) container.getAdapter(IPublishedServiceDirectory.class);
viewer.setInput(directory);
setEnabled(false);
shareSomethingAction.setEnabled(true);
}
});
mgr.add(shareSomethingAction);
menuManager = new MenuManager();
subscribeAction = new BaseSelectionListenerAction("Subscribe") {
public void run() {
PublishedServiceDescriptor desc = (PublishedServiceDescriptor) getStructuredSelection().getFirstElement();
IPublishedServiceRequestor requestor = (IPublishedServiceRequestor) container.getAdapter(IPublishedServiceRequestor.class);
requestor.subscribe(desc.getContainerID(), desc.getSharedObjectID(), new SubscriptionViewOpener());
}
protected boolean updateSelection(IStructuredSelection selection) {
return !selection.isEmpty();
}
};
subscribeAction.setEnabled(false);
menuManager.add(subscribeAction);
sharedListMenuManager = new MenuManager();
appendAction = new BaseSelectionListenerAction("Append...") {
public void run() {
InputDialog dlg = new InputDialog(getSite().getShell(), "Append to Shared List", "Enter element to append:", null, null);
dlg.open();
String value = dlg.getValue();
if (value != null) {
LocalAgent model = (LocalAgent) getStructuredSelection().getFirstElement();
AppendableList list = (AppendableList) model.getData();
if (list.add(value)) {
try {
model.update(value);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
protected boolean updateSelection(IStructuredSelection selection) {
return !selection.isEmpty();
}
};
appendAction.setEnabled(false);
sharedListMenuManager.add(appendAction);
}
Aggregations