Search in sources :

Example 31 with Editor

use of jmri.jmrit.display.Editor in project JMRI by JMRI.

the class PositionableShapeXml method load.

/**
     * Create a PositionableShape, then add to a target JLayeredPane
     *
     * @param element Top level Element to unpack.
     * @param o       Editor as an Object
     */
@Override
public void load(Element element, Object o) {
    // create the objects
    Editor ed = (Editor) o;
    PositionableShape ps = new PositionableShape(ed);
    ed.putItem(ps);
    // load individual item's option settings after editor has set its global settings
    loadCommonAttributes(ps, Editor.MARKERS, element);
}
Also used : PositionableShape(jmri.jmrit.display.controlPanelEditor.shape.PositionableShape) Editor(jmri.jmrit.display.Editor)

Example 32 with Editor

use of jmri.jmrit.display.Editor in project JMRI by JMRI.

the class PositionablePolygonXml method load.

/**
     * Create a PositionableShape, then add to a target JLayeredPane
     *
     * @param element Top level Element to unpack.
     * @param o       Editor as an Object
     */
@Override
public void load(Element element, Object o) {
    // create the objects
    Editor ed = (Editor) o;
    GeneralPath path = new GeneralPath(GeneralPath.WIND_EVEN_ODD);
    Element elem = element.getChild("path");
    float[] coord = new float[6];
    java.util.List<Element> list = elem.getChildren("vertex");
    for (int j = 0; j < list.size(); j++) {
        Element e = list.get(j);
        int type = getInt(e, "type");
        for (int i = 0; i < coord.length; i++) {
            coord[i] = getFloat(e, "idx" + i);
        }
        switch(type) {
            case PathIterator.SEG_MOVETO:
                path.moveTo(coord[0], coord[1]);
                break;
            case PathIterator.SEG_LINETO:
                path.lineTo(coord[0], coord[1]);
                break;
            case PathIterator.SEG_QUADTO:
                path.quadTo(coord[0], coord[1], coord[2], coord[3]);
                break;
            case PathIterator.SEG_CUBICTO:
                path.curveTo(coord[0], coord[1], coord[2], coord[3], coord[4], coord[5]);
                break;
            case PathIterator.SEG_CLOSE:
                path.closePath();
                break;
            default:
                log.warn("Unhandled type: {}", type);
                break;
        }
    }
    PositionablePolygon ps = new PositionablePolygon(ed, path);
    // get object class and determine editor being used
    ed.putItem(ps);
    // load individual item's option settings after editor has set its global settings
    loadCommonAttributes(ps, Editor.MARKERS, element);
}
Also used : GeneralPath(java.awt.geom.GeneralPath) Element(org.jdom2.Element) PositionablePolygon(jmri.jmrit.display.controlPanelEditor.shape.PositionablePolygon) Editor(jmri.jmrit.display.Editor)

Example 33 with Editor

use of jmri.jmrit.display.Editor in project JMRI by JMRI.

the class PositionableEllipseXml method load.

/**
     * Create a PositionableShape, then add to a target JLayeredPane
     *
     * @param element Top level Element to unpack.
     * @param o       Editor as an Object
     */
@Override
public void load(Element element, Object o) {
    // create the objects
    Editor ed = (Editor) o;
    PositionableEllipse ps = new PositionableEllipse(ed);
    Element elem = element.getChild("size");
    ps.setWidth(getInt(elem, "width"));
    ps.setHeight(getInt(elem, "height"));
    ed.putItem(ps);
    // load individual item's option settings after editor has set its global settings
    loadCommonAttributes(ps, Editor.MARKERS, element);
}
Also used : Element(org.jdom2.Element) PositionableEllipse(jmri.jmrit.display.controlPanelEditor.shape.PositionableEllipse) Editor(jmri.jmrit.display.Editor)

Example 34 with Editor

use of jmri.jmrit.display.Editor in project JMRI by JMRI.

the class ItemPalette method makeMenus.

private void makeMenus(Editor editor) {
    if (!jmri.util.ThreadingUtil.isGUIThread())
        log.error("Not on GUI thread", new Exception("traceback"));
    JMenuBar menuBar = new JMenuBar();
    JMenu findIcon = new JMenu(Bundle.getMessage("findIconMenu"));
    menuBar.add(findIcon);
    JMenuItem editItem = new JMenuItem(Bundle.getMessage("editIndexMenu"));
    editItem.addActionListener(new ActionListener() {

        Editor editor;

        @Override
        public void actionPerformed(ActionEvent e) {
            ImageIndexEditor ii = ImageIndexEditor.instance(editor);
            ii.pack();
            ii.setVisible(true);
        }

        ActionListener init(Editor ed) {
            editor = ed;
            return this;
        }
    }.init(editor));
    findIcon.add(editItem);
    findIcon.addSeparator();
    JMenuItem openItem = new JMenuItem(Bundle.getMessage("openDirMenu"));
    openItem.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            DirectorySearcher.instance().openDirectory();
        }
    });
    findIcon.add(openItem);
    JMenuItem searchItem = new JMenuItem(Bundle.getMessage("searchFSMenu"));
    searchItem.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            jmri.jmrit.catalog.DirectorySearcher.instance().searchFS();
        }
    });
    findIcon.add(searchItem);
    setJMenuBar(menuBar);
    addHelpMenu("package.jmri.jmrit.display.ItemPalette", true);
}
Also used : ActionListener(java.awt.event.ActionListener) ImageIndexEditor(jmri.jmrit.catalog.ImageIndexEditor) ActionEvent(java.awt.event.ActionEvent) JMenuItem(javax.swing.JMenuItem) Editor(jmri.jmrit.display.Editor) ImageIndexEditor(jmri.jmrit.catalog.ImageIndexEditor) JMenuBar(javax.swing.JMenuBar) JMenu(javax.swing.JMenu)

Example 35 with Editor

use of jmri.jmrit.display.Editor in project JMRI by JMRI.

the class JmriJFrameServlet method doList.

private void doList(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    List<String> disallowedFrames = Arrays.asList(WebServerPreferences.getDefault().getDisallowedFrames());
    // NOI18N
    String format = request.getParameter("format");
    ObjectMapper mapper = new ObjectMapper();
    Date now = new Date();
    boolean usePanels = Boolean.parseBoolean(request.getParameter(JSON.PANELS));
    response.setStatus(HttpServletResponse.SC_OK);
    if ("json".equals(format)) {
        // NOI18N
        // NOI18N
        response.setContentType("application/json");
    } else {
        // NOI18N
        response.setContentType("text/html");
    }
    // NOI18N
    response.setHeader("Connection", "Keep-Alive");
    // NOI18N
    response.setDateHeader("Date", now.getTime());
    // NOI18N
    response.setDateHeader("Last-Modified", now.getTime());
    // NOI18N
    response.setDateHeader("Expires", now.getTime());
    if ("json".equals(format)) {
        // NOI18N
        ArrayNode root = mapper.createArrayNode();
        HashSet<JFrame> frames = new HashSet<>();
        JsonUtilHttpService service = new JsonUtilHttpService(new ObjectMapper());
        JmriJFrame.getFrameList().stream().forEach((frame) -> {
            if (usePanels && frame instanceof Editor) {
                ObjectNode node = service.getPanel(request.getLocale(), (Editor) frame, JSON.XML);
                if (node != null) {
                    root.add(node);
                    frames.add(((Editor) frame).getTargetFrame());
                }
            } else {
                String title = frame.getTitle();
                if (!title.isEmpty() && frame.getAllowInFrameServlet() && !disallowedFrames.contains(title) && !frames.contains(frame) && frame.isVisible()) {
                    ObjectNode node = mapper.createObjectNode();
                    node.put(NAME, title);
                    // NOI18N
                    node.put(URL, "/frame/" + StringUtil.escapeString(title) + ".html");
                    // NOI18N
                    node.put("png", "/frame/" + StringUtil.escapeString(title) + ".png");
                    root.add(node);
                    frames.add(frame);
                }
            }
        });
        response.getWriter().write(mapper.writeValueAsString(root));
    } else {
        // NOI18N
        response.getWriter().append(Bundle.getMessage(request.getLocale(), "FrameDocType"));
        // NOI18N
        response.getWriter().append(Bundle.getMessage(request.getLocale(), "ListFront"));
        // NOI18N
        response.getWriter().write(Bundle.getMessage(request.getLocale(), "TableHeader"));
        // list frames, (open JMRI windows)
        for (JmriJFrame frame : JmriJFrame.getFrameList()) {
            String title = frame.getTitle();
            //don't add to list if blank or disallowed
            if (!title.isEmpty() && frame.getAllowInFrameServlet() && !disallowedFrames.contains(title) && frame.isVisible()) {
                // NOI18N
                String link = "/frame/" + StringUtil.escapeString(title) + ".html";
                //format a table row for each valid window (frame)
                // NOI18N
                response.getWriter().append("<tr><td><a href='" + link + "'>");
                response.getWriter().append(title);
                // NOI18N
                response.getWriter().append("</a></td>");
                response.getWriter().append("<td><a href='");
                response.getWriter().append(link);
                // NOI18N
                response.getWriter().append("'><img src='");
                // NOI18N
                response.getWriter().append("/frame/" + StringUtil.escapeString(title) + ".png");
                // NOI18N
                response.getWriter().append("'></a></td></tr>\n");
            }
        }
        // NOI18N
        response.getWriter().append("</table>");
        // NOI18N
        response.getWriter().append(Bundle.getMessage(request.getLocale(), "ListFooter"));
    }
}
Also used : JsonUtilHttpService(jmri.server.json.util.JsonUtilHttpService) ObjectNode(com.fasterxml.jackson.databind.node.ObjectNode) Date(java.util.Date) JmriJFrame(jmri.util.JmriJFrame) JFrame(javax.swing.JFrame) JmriJFrame(jmri.util.JmriJFrame) ArrayNode(com.fasterxml.jackson.databind.node.ArrayNode) Editor(jmri.jmrit.display.Editor) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) HashSet(java.util.HashSet)

Aggregations

Editor (jmri.jmrit.display.Editor)36 Element (org.jdom2.Element)18 Attribute (org.jdom2.Attribute)15 NamedIcon (jmri.jmrit.catalog.NamedIcon)13 ArrayList (java.util.ArrayList)3 Memory (jmri.Memory)3 LayoutEditor (jmri.jmrit.display.layoutEditor.LayoutEditor)3 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)2 ArrayNode (com.fasterxml.jackson.databind.node.ArrayNode)2 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)2 ActionEvent (java.awt.event.ActionEvent)2 ActionListener (java.awt.event.ActionListener)2 JMenu (javax.swing.JMenu)2 JMenuItem (javax.swing.JMenuItem)2 ImageIndexEditor (jmri.jmrit.catalog.ImageIndexEditor)2 RosterEntry (jmri.jmrit.roster.RosterEntry)2 JsonNode (com.fasterxml.jackson.databind.JsonNode)1 Point (java.awt.Point)1 GeneralPath (java.awt.geom.GeneralPath)1 Arrays (java.util.Arrays)1