]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.debug.browser/src/org/simantics/debug/browser/sections/BreadcrumbSection.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.debug.browser / src / org / simantics / debug / browser / sections / BreadcrumbSection.java
1 /*******************************************************************************\r
2  * Copyright (c) 2016 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     THTH ry - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.debug.browser.sections;\r
13 \r
14 import java.io.PrintWriter;\r
15 \r
16 import org.simantics.db.ReadGraph;\r
17 import org.simantics.db.exception.DatabaseException;\r
18 import org.simantics.debug.browser.utils.Escapes;\r
19 \r
20 public class BreadcrumbSection implements ResourceBrowserSection {\r
21 \r
22     public final Node[] breadcrumb;\r
23     \r
24     public BreadcrumbSection(Node[] breadcrumb) {\r
25         this.breadcrumb = breadcrumb;\r
26     }\r
27 \r
28     public static class Node {\r
29         public final String separator;\r
30         public final String name;\r
31         public final long resourceId;\r
32         \r
33         public Node(String separator, String name, long resourceId) {\r
34             this.separator = separator;\r
35             this.name = name;\r
36             this.resourceId = resourceId;\r
37         }\r
38     }\r
39     \r
40     @Override\r
41     public double getPriority() {\r
42         return 0;\r
43     }\r
44 \r
45     @Override\r
46     public void toHtml(ReadGraph graph, PrintWriter out)\r
47             throws DatabaseException {\r
48         \r
49         if (breadcrumb.length > 0) {\r
50             out.println("<div class=\"breadcrumbSection\">");\r
51             for(Node node : breadcrumb) {\r
52                 out.print(node.separator);\r
53                 out.print("<a href=\"");\r
54                 out.print(node.resourceId);\r
55                 out.print("\">");\r
56                 out.print(Escapes.html(node.name));\r
57                 out.print("</a>");\r
58             }\r
59             out.println("</div>");\r
60         }\r
61     }\r
62 \r
63 }\r