MaxSem has uploaded a new change for review.
https://gerrit.wikimedia.org/r/197866
Change subject: Introduce an info action that returns image dimesnions
......................................................................
Introduce an info action that returns image dimesnions
Change-Id: Ic8d658fe591c718b3e261d819a980d2089ea66d3
---
R src/hierator/HieratorServlet.java
R src/hierator/HieroglyphicsHandler.java
M src/hierator/PngRenderer.java
M src/hierator/SvgRenderer.java
A src/hierator/TextInfo.java
5 files changed, 33 insertions(+), 6 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/hierator
refs/changes/66/197866/1
diff --git a/src/hierator/RenderingServlet.java
b/src/hierator/HieratorServlet.java
similarity index 96%
rename from src/hierator/RenderingServlet.java
rename to src/hierator/HieratorServlet.java
index f40cd74..3cb0a06 100644
--- a/src/hierator/RenderingServlet.java
+++ b/src/hierator/HieratorServlet.java
@@ -15,18 +15,19 @@
* Servlet implementation main class
*/
@WebServlet("/")
-public class RenderingServlet extends HttpServlet {
+public class HieratorServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private HashMap<String, PathHandler> routing = new HashMap<String,
PathHandler>();
/**
* @see HttpServlet#HttpServlet()
*/
- public RenderingServlet() {
+ public HieratorServlet() {
super();
routing.put("png", new PngRenderer());
routing.put("svg", new SvgRenderer());
routing.put("list", new HieroglyphLister());
+ routing.put("info", new TextInfo());
}
/**
diff --git a/src/hierator/Renderer.java b/src/hierator/HieroglyphicsHandler.java
similarity index 89%
rename from src/hierator/Renderer.java
rename to src/hierator/HieroglyphicsHandler.java
index bc10f8f..8503e74 100644
--- a/src/hierator/Renderer.java
+++ b/src/hierator/HieroglyphicsHandler.java
@@ -3,9 +3,9 @@
import javax.servlet.http.HttpServletRequest;
/**
- * Base class for Manuel de Codage texts renderering path handlers
+ * Base class for Manuel de Codage texts processing path handlers
*/
-public abstract class Renderer implements PathHandler {
+public abstract class HieroglyphicsHandler implements PathHandler {
/**
* When implemented in a descendant class, performs rendering
*
diff --git a/src/hierator/PngRenderer.java b/src/hierator/PngRenderer.java
index 52f4903..179e81f 100644
--- a/src/hierator/PngRenderer.java
+++ b/src/hierator/PngRenderer.java
@@ -10,7 +10,7 @@
/**
* PNG rendering path handler
*/
-public class PngRenderer extends Renderer {
+public class PngRenderer extends HieroglyphicsHandler {
@Override
public String getContentType() {
diff --git a/src/hierator/SvgRenderer.java b/src/hierator/SvgRenderer.java
index fdcedf3..753ab1f 100644
--- a/src/hierator/SvgRenderer.java
+++ b/src/hierator/SvgRenderer.java
@@ -13,7 +13,7 @@
/**
* PNG rendering path handler
*/
-public class SvgRenderer extends Renderer {
+public class SvgRenderer extends HieroglyphicsHandler {
@Override
public String getContentType() {
diff --git a/src/hierator/TextInfo.java b/src/hierator/TextInfo.java
new file mode 100644
index 0000000..e956803
--- /dev/null
+++ b/src/hierator/TextInfo.java
@@ -0,0 +1,26 @@
+package hierator;
+
+import java.awt.geom.Rectangle2D;
+
+import jsesh.mdcDisplayer.draw.MDCDrawingFacade;
+
+/**
+ * Path handler that returns JSON with dimensions of a hieroglyphic text
+ */
+public class TextInfo extends HieroglyphicsHandler {
+
+ @Override
+ byte[] render(String text, int size) throws Exception {
+ MDCDrawingFacade facade = new MDCDrawingFacade();
+ facade.setCadratHeight(size);
+ Rectangle2D dims = facade.getBounds(text, 0, 0);
+ String json = String.format("{\"width\": %d, \"height\": %d}",
(int)dims.getWidth(), (int)dims.getHeight());
+
+ return json.getBytes();
+ }
+
+ @Override
+ public String getContentType() {
+ return "application/json";
+ }
+}
--
To view, visit https://gerrit.wikimedia.org/r/197866
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic8d658fe591c718b3e261d819a980d2089ea66d3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/hierator
Gerrit-Branch: master
Gerrit-Owner: MaxSem <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits