use of org.eclipse.sapphire.ValueProperty in project liferay-ide by liferay.
the class ResourceBundleJumpActionHandler method run.
/**
* (non-Javadoc)
*
* @see
* org.eclipse.sapphire.ui.SapphireActionHandler#run(org.eclipse.sapphire.ui.
* SapphireRenderingContext)
*/
@Override
protected Object run(Presentation context) {
Element element = getModelElement();
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
ValueProperty property = (ValueProperty) property().definition();
IProject project = element.adapt(IProject.class);
Value<Path> value = element.property(property);
String text = value.text(false);
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot wroot = workspace.getRoot();
IClasspathEntry[] cpEntries = CoreUtil.getClasspathEntries(project);
String ioFileName = PortletUtil.convertJavaToIoFileName(text, RB_FILE_EXTENSION);
for (IClasspathEntry iClasspathEntry : cpEntries) {
if (IClasspathEntry.CPE_SOURCE == iClasspathEntry.getEntryKind()) {
IPath entryPath = wroot.getFolder(iClasspathEntry.getPath()).getLocation();
entryPath = entryPath.append(ioFileName);
IFile resourceBundleFile = wroot.getFileForLocation(entryPath);
if ((resourceBundleFile != null) && resourceBundleFile.exists()) {
if (window != null) {
IWorkbenchPage page = window.getActivePage();
IEditorDescriptor editorDescriptor = null;
try {
editorDescriptor = IDE.getEditorDescriptor(resourceBundleFile.getName());
} catch (PartInitException pie) {
// No editor was found for this file type.
}
if (editorDescriptor != null) {
try {
IDE.openEditor(page, resourceBundleFile, editorDescriptor.getId(), true);
} catch (PartInitException pie) {
PortletUIPlugin.logError(pie);
}
}
}
}
}
}
return null;
}
use of org.eclipse.sapphire.ValueProperty in project liferay-ide by liferay.
the class ResourceBundleJumpActionHandler method computeEnablementState.
/**
* (non-Javadoc)
*
* @see org.eclipse.sapphire.ui.SapphirePropertyEditorActionHandler#
* computeEnablementState()
*/
@Override
protected boolean computeEnablementState() {
Element element = getModelElement();
IProject project = element.adapt(IProject.class);
ValueProperty property = (ValueProperty) property().definition();
String text = element.property(property).text(true);
boolean enabled = super.computeEnablementState();
if (enabled && (text != null)) {
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot wroot = workspace.getRoot();
IClasspathEntry[] cpEntries = CoreUtil.getClasspathEntries(project);
String ioFileName = PortletUtil.convertJavaToIoFileName(text, RB_FILE_EXTENSION);
if (cpEntries != null) {
for (IClasspathEntry iClasspathEntry : cpEntries) {
if (IClasspathEntry.CPE_SOURCE == iClasspathEntry.getEntryKind()) {
IPath entryPath = wroot.getFolder(iClasspathEntry.getPath()).getLocation();
entryPath = entryPath.append(ioFileName);
IFile resourceBundleFile = wroot.getFileForLocation(entryPath);
if ((resourceBundleFile != null) && resourceBundleFile.exists()) {
return true;
}
}
}
}
}
return false;
}
use of org.eclipse.sapphire.ValueProperty in project liferay-ide by liferay.
the class ScriptPropertyEditorRenderer method createContents.
@Override
protected void createContents(Composite parent) {
PropertyEditorPart part = part();
Element element = part.getLocalModelElement();
ValueProperty property = part.property().nearest(ValueProperty.class);
CreateMainCompositeDelegate createMainCompositeDelegate = new CreateMainCompositeDelegate(part) {
@Override
public boolean canScaleVertically() {
return true;
}
};
Composite codeEditorParent = createMainComposite(parent, createMainCompositeDelegate);
// context.adapt( codeEditorParent );
int codeEditorParentColumns = 1;
SapphireToolBarActionPresentation toolBarActionsPresentation = new SapphireToolBarActionPresentation(getActionPresentationManager());
boolean actionsToolBarNeeded = toolBarActionsPresentation.hasActions();
if (actionsToolBarNeeded) {
codeEditorParentColumns++;
}
codeEditorParent.setLayout(glayout(codeEditorParentColumns, 0, 0, 0, 0));
Composite nestedComposite = new Composite(codeEditorParent, SWT.NONE);
nestedComposite.setLayoutData(gdfill());
// nestedComposite.setLayout( glspacing( glayout( 2, 0, 0 ), 2 ) );
addControl(nestedComposite);
PropertyEditorAssistDecorator decorator = createDecorator(nestedComposite);
decorator.control().setLayoutData(gdvalign(gd(), SWT.TOP));
decorator.addEditorControl(nestedComposite);
ScriptPropertyEditorInput editorInput = new ScriptPropertyEditorInput(element, property);
List<Control> relatedControls = new ArrayList<>();
try {
IEditorSite editorSite = part().adapt(IEditorSite.class);
_editorPart = createEditorPart(editorInput, editorSite);
_editorPart.createPartControl(nestedComposite);
Control editorControl = _editorPart.getAdapter(Control.class);
// need to find the first child of nestedComposite to relayout
// editor control
Composite editorControlParent = null;
Control control = editorControl;
while ((editorControlParent == null) && (control != null) && !nestedComposite.equals(control.getParent())) {
control = control.getParent();
}
nestedComposite.setLayout(glspacing(glayout(2, 0, 0), 2));
control.setLayoutData(gdfill());
decorator.addEditorControl(editorControl, true);
editorControl.setData(RELATED_CONTROLS, relatedControls);
} catch (Exception e) {
KaleoUI.logError(e);
}
if (actionsToolBarNeeded) {
ToolBar toolbar = new ToolBar(codeEditorParent, SWT.FLAT | SWT.HORIZONTAL);
toolbar.setLayoutData(gdvfill());
toolBarActionsPresentation.setToolBar(toolbar);
toolBarActionsPresentation.render();
addControl(toolbar);
decorator.addEditorControl(toolbar);
relatedControls.add(toolbar);
}
List<Class<?>> listenerClasses = part.getRenderingHint(PropertyEditorDef.HINT_LISTENERS, Collections.<Class<?>>emptyList());
List<ValuePropertyEditorListener> listeners = new ArrayList<>();
if (ListUtil.isNotEmpty(listenerClasses)) {
for (Class<?> cl : listenerClasses) {
try {
ValuePropertyEditorListener listener = (ValuePropertyEditorListener) cl.newInstance();
listener.initialize(this);
listeners.add(listener);
} catch (Exception e) {
KaleoUI.logError(e);
}
}
}
ITextEditor textEditor = null;
if (_editorPart instanceof ITextEditor) {
textEditor = (ITextEditor) _editorPart;
} else {
ITextEditor textEdit = _editorPart.getAdapter(ITextEditor.class);
textEditor = textEdit;
}
addControl((Control) textEditor.getAdapter(Control.class));
IDocumentListener documentListener = new IDocumentListener() {
public void documentAboutToBeChanged(DocumentEvent event) {
}
public void documentChanged(DocumentEvent event) {
Value<Object> elementProperty = element.property(property);
elementProperty.write(event.getDocument().get());
if (ListUtil.isNotEmpty(listeners)) {
for (ValuePropertyEditorListener listener : listeners) {
try {
listener.handleValueChanged();
} catch (Exception e) {
KaleoUI.logError(e);
}
}
}
}
};
IDocumentProvider documentProvider = textEditor.getDocumentProvider();
IDocument document = documentProvider.getDocument(_editorPart.getEditorInput());
document.addDocumentListener(documentListener);
}
use of org.eclipse.sapphire.ValueProperty in project liferay-ide by liferay.
the class UrlPathValidationService method compute.
@Override
public Status compute() {
ValueProperty valueProperty = context(ValueProperty.class);
Value<?> value = context(Element.class).property(valueProperty);
String urlPath = value.text();
if ((urlPath != null) && !urlPath.startsWith("/")) {
return Status.createErrorStatus(Resources.bind(Resources.invalidUrlPath, valueProperty.getLabel(false, CapitalizationType.FIRST_WORD_ONLY, false)));
}
return Status.createOkStatus();
}
use of org.eclipse.sapphire.ValueProperty in project liferay-ide by liferay.
the class CreatePortletAppResourceBundleActionHandler method run.
/**
* (non-Javadoc)
*
* @see
* org.eclipse.sapphire.ui.SapphireActionHandler#run(org.eclipse.sapphire.ui.
* SapphireRenderingContext)
*/
@Override
protected Object run(Presentation context) {
Element element = getModelElement();
IProject project = element.adapt(IProject.class);
Property property = property();
Value<Path> resourceBundle = element.property((ValueProperty) property.definition());
String resourceBundleText = resourceBundle.text();
int index = resourceBundleText.lastIndexOf(".");
if (index == -1) {
index = resourceBundleText.length();
}
String packageName = resourceBundleText.substring(0, index);
String defaultRBFileName = PortletUtil.convertJavaToIoFileName(resourceBundleText, GenericResourceBundlePathService.RB_FILE_EXTENSION);
IFolder rbSourecFolder = getResourceBundleFolderLocation(project, defaultRBFileName);
IPath entryPath = rbSourecFolder.getLocation();
if (getModelElement() instanceof PortletApp) {
List<IFile> missingRBFiles = new ArrayList<>();
StringBuilder rbFileBuffer = new StringBuilder("#Portlet Application Resource Bundle \n");
IFile rbFile = wroot.getFileForLocation(entryPath.append(defaultRBFileName));
missingRBFiles.add(rbFile);
createFiles(context, project, packageName, missingRBFiles, rbFileBuffer);
setEnabled(false);
Property modelElement = getModelElement().property(property().definition());
modelElement.refresh();
}
return null;
}
Aggregations