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

Reply via email to