use of org.jboss.ide.eclipse.freemarker.model.Item in project liferay-ide by liferay.
the class OutlineContentProvider method getElements.
public Object[] getElements(Object inputElement) {
ItemSet itemSet = null;
if (inputElement instanceof ItemSet)
itemSet = (ItemSet) inputElement;
else
itemSet = fEditor.getItemSet();
List rootItems = new ArrayList();
rootItems.addAll(fEditor.getItemSet().getMacroDefinitions());
Item[] items = fEditor.getItemSet().getRootItems();
for (int i = 0; i < items.length; i++) {
if (!(items[i] instanceof MacroDirective))
rootItems.add(items[i]);
}
return rootItems.toArray();
}
use of org.jboss.ide.eclipse.freemarker.model.Item in project liferay-ide by liferay.
the class OutlineContentProvider method getChildren.
public Object[] getChildren(Object anElement) {
if (anElement instanceof Item) {
if (anElement instanceof MacroDirective)
return null;
Object[] items = ((Item) anElement).getChildItems().toArray(new Item[((Item) anElement).getChildItems().size()]);
List l = new ArrayList(items.length);
for (int i = 0; i < items.length; i++) {
if (!(items[i] instanceof MacroDirective))
l.add(items[i]);
}
return l.toArray();
} else
return null;
}
use of org.jboss.ide.eclipse.freemarker.model.Item in project liferay-ide by liferay.
the class Editor method validateBreakpointPosition.
public IStatus validateBreakpointPosition(int lineNumber, int offset) {
IStatus retval = null;
try {
int lineOffset = getDocument().getLineOffset(lineNumber - 1);
int lineLength = getDocument().getLineLength(lineNumber - 1);
/* go through all of the offets from the start of the line to the end of the line and see if any of the
* lines contain a valid item
*/
Item breakpointItem = null;
for (int i = lineOffset; i < lineOffset + lineLength; i++) {
Item item = getItemSet().getItem(i);
if (item != null) {
breakpointItem = item;
break;
}
}
if (breakpointItem == null) {
retval = new MultiStatus(Plugin.ID, IStatus.ERROR, new IStatus[] { createErrorStatus("Please add a breakpoint to a different line that contains " + "a valid freemarker directive, e.g. ${...}, <#...>, <@...>, etc.") }, "Unable to set breakpoint on this line. Select Details for more info.", null);
}
} catch (BadLocationException e) {
retval = createErrorStatus("Unable to determine breakpoint offset.", e);
}
return retval == null ? Status.OK_STATUS : retval;
}
use of org.jboss.ide.eclipse.freemarker.model.Item in project liferay-ide by liferay.
the class MacroHyperlinkDetector method detectHyperlinks.
public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
Item item = editor.getItemSet().getItem(region.getOffset());
if (null != item && item instanceof MacroInstance) {
MacroInstance instance = (MacroInstance) item;
int index = instance.getName().indexOf('.');
if (index > 0) {
// it is from a macro library
String namespace = instance.getName().substring(0, index);
MacroLibrary macroLibrary = ConfigurationManager.getInstance(editor.getProject()).getMacroLibrary(namespace);
if (null != macroLibrary) {
for (int i = 0; i < macroLibrary.getMacros().length; i++) {
if (macroLibrary.getMacros()[i].getName().equals(instance.getName())) {
// we have a match
return new IHyperlink[] { new MacroHyperlink(instance, macroLibrary.getFile(), macroLibrary.getMacros()[i].getOffset(), macroLibrary.getMacros()[i].getLength()) };
}
}
}
if (null != macroLibrary)
return new IHyperlink[] { new MacroHyperlink(instance, macroLibrary.getFile(), -1, -1) };
} else {
List macroDefinitions = instance.getItemSet().getMacroDefinitions();
for (Iterator i = macroDefinitions.iterator(); i.hasNext(); ) {
MacroDirective macroDefinition = (MacroDirective) i.next();
if (macroDefinition.getName().equals(instance.getName())) {
return new IHyperlink[] { new MacroHyperlink(instance, editor.getFile(), macroDefinition.getOffset(), macroDefinition.getLength()) };
}
}
}
}
return null;
}
Aggregations