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);
}
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);
}
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);
}
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);
}
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"));
}
}
Aggregations