Search in sources :

Example 6 with Item

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();
}
Also used : Item(org.jboss.ide.eclipse.freemarker.model.Item) ItemSet(org.jboss.ide.eclipse.freemarker.model.ItemSet) ArrayList(java.util.ArrayList) List(java.util.List) ArrayList(java.util.ArrayList) MacroDirective(org.jboss.ide.eclipse.freemarker.model.MacroDirective)

Example 7 with Item

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;
}
Also used : Item(org.jboss.ide.eclipse.freemarker.model.Item) ArrayList(java.util.ArrayList) List(java.util.List) ArrayList(java.util.ArrayList) MacroDirective(org.jboss.ide.eclipse.freemarker.model.MacroDirective)

Example 8 with Item

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;
}
Also used : Item(org.jboss.ide.eclipse.freemarker.model.Item) IStatus(org.eclipse.core.runtime.IStatus) MultiStatus(org.eclipse.core.runtime.MultiStatus) BadLocationException(org.eclipse.jface.text.BadLocationException)

Example 9 with Item

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;
}
Also used : Item(org.jboss.ide.eclipse.freemarker.model.Item) MacroLibrary(org.jboss.ide.eclipse.freemarker.configuration.MacroLibrary) IHyperlink(org.eclipse.jface.text.hyperlink.IHyperlink) Iterator(java.util.Iterator) MacroInstance(org.jboss.ide.eclipse.freemarker.model.MacroInstance) List(java.util.List) MacroDirective(org.jboss.ide.eclipse.freemarker.model.MacroDirective)

Aggregations

Item (org.jboss.ide.eclipse.freemarker.model.Item)9 List (java.util.List)3 BadLocationException (org.eclipse.jface.text.BadLocationException)3 MacroDirective (org.jboss.ide.eclipse.freemarker.model.MacroDirective)3 ArrayList (java.util.ArrayList)2 ItemSet (org.jboss.ide.eclipse.freemarker.model.ItemSet)2 MacroInstance (org.jboss.ide.eclipse.freemarker.model.MacroInstance)2 HashMap (java.util.HashMap)1 Iterator (java.util.Iterator)1 Map (java.util.Map)1 IStatus (org.eclipse.core.runtime.IStatus)1 MultiStatus (org.eclipse.core.runtime.MultiStatus)1 CompletionProposal (org.eclipse.jface.text.contentassist.CompletionProposal)1 ICompletionProposal (org.eclipse.jface.text.contentassist.ICompletionProposal)1 IHyperlink (org.eclipse.jface.text.hyperlink.IHyperlink)1 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)1 TreeItem (org.eclipse.swt.widgets.TreeItem)1 ContextValue (org.jboss.ide.eclipse.freemarker.configuration.ContextValue)1 MacroLibrary (org.jboss.ide.eclipse.freemarker.configuration.MacroLibrary)1 CompletionDirective (org.jboss.ide.eclipse.freemarker.model.CompletionDirective)1