Updated Branches:
  refs/heads/master ca33e606e -> 9fa0fcddc

add configuration property for page orientation


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/cdf0d0f9
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/cdf0d0f9
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/cdf0d0f9

Branch: refs/heads/master
Commit: cdf0d0f914a871bf158b212007223a342291d7b9
Parents: a17f232
Author: Carsten Erker <carsten.er...@akquinet.de>
Authored: Wed Jan 15 14:48:48 2014 +0100
Committer: Carsten Erker <carsten.er...@akquinet.de>
Committed: Wed Jan 15 14:48:48 2014 +0100

----------------------------------------------------------------------
 .../component/printer/PrinterConfiguration.java | 45 +++++++++++++++++++-
 .../component/printer/PrinterProducer.java      |  3 +-
 .../component/printer/PrinterPrintTest.java     | 24 +++++++++++
 3 files changed, 70 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/cdf0d0f9/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterConfiguration.java
 
b/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterConfiguration.java
index d17c9c0..cf0c341 100644
--- 
a/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterConfiguration.java
+++ 
b/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterConfiguration.java
@@ -21,6 +21,7 @@ import java.net.URISyntaxException;
 import java.util.Map;
 import javax.print.DocFlavor;
 import javax.print.attribute.standard.MediaSizeName;
+import javax.print.attribute.standard.OrientationRequested;
 import javax.print.attribute.standard.Sides;
 
 import org.apache.camel.util.ObjectHelper;
@@ -40,6 +41,8 @@ public class PrinterConfiguration {
     private MediaSizeName mediaSizeName;
     private String sides;
     private Sides internalSides;
+    private String orientation;
+    private OrientationRequested internalOrientation;
     private boolean sendToPrinter = true;
     private String mediaTray;
 
@@ -79,14 +82,17 @@ public class PrinterConfiguration {
         }
         setMediaSize((String)printSettings.get("mediaSize"));
         setSides((String)printSettings.get("sides"));
-        setMediaSizeName(assignMediaSize(mediaSize));       
+        setOrientation(((String)printSettings.get("orientation")));
+        setMediaSizeName(assignMediaSize(mediaSize));
         setInternalSides(assignSides(sides));
+        setInternalOrientation(assignOrientation(orientation));
         if (printSettings.containsKey("sendToPrinter")) {
             if (!(Boolean.valueOf((String) 
printSettings.get("sendToPrinter")))) {
                 setSendToPrinter(false);
             }
         }
 
+
         if (printSettings.containsKey("mediaTray")) {
             setMediaTray((String) printSettings.get("mediaTray"));
         }
@@ -198,6 +204,27 @@ public class PrinterConfiguration {
         return answer;
     }
     
+    public OrientationRequested assignOrientation(final String orientation) {
+        OrientationRequested answer;
+
+        if (orientation == null) {
+            // default to portrait
+            answer = OrientationRequested.PORTRAIT;
+        } else if (orientation.equalsIgnoreCase("portrait")) {
+            answer = OrientationRequested.PORTRAIT;
+        } else if (orientation.equalsIgnoreCase("landscape")) {
+            answer = OrientationRequested.LANDSCAPE;
+        } else if (orientation.equalsIgnoreCase("reverse-portrait")) {
+            answer = OrientationRequested.REVERSE_PORTRAIT;
+        } else if (orientation.equalsIgnoreCase("reverse-landscape")) {
+            answer = OrientationRequested.REVERSE_LANDSCAPE;
+        } else {
+            answer = OrientationRequested.PORTRAIT;
+        }
+
+        return answer;
+    }
+
     public URI getUri() {
         return uri;
     }
@@ -286,6 +313,22 @@ public class PrinterConfiguration {
         this.internalSides = internalSides;
     }
 
+    public OrientationRequested getInternalOrientation() {
+        return internalOrientation;
+    }
+
+    public void setInternalOrientation(OrientationRequested 
internalOrientation) {
+        this.internalOrientation = internalOrientation;
+    }
+
+    public String getOrientation() {
+        return orientation;
+    }
+
+    public void setOrientation( String orientation ) {
+        this.orientation = orientation;
+    }
+
     public String getMimeType() {
         return mimeType;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/cdf0d0f9/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterProducer.java
 
b/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterProducer.java
index d346481..ee3239c 100644
--- 
a/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterProducer.java
+++ 
b/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterProducer.java
@@ -71,7 +71,8 @@ public class PrinterProducer extends DefaultProducer {
         }
         printRequestAttributeSet.add(config.getMediaSizeName());
         printRequestAttributeSet.add(config.getInternalSides());
-        
+        printRequestAttributeSet.add(config.getInternalOrientation());
+
         if (config.getMediaTray() != null) {
             MediaTray mediaTray = resolveMediaTray(config.getMediaTray());
         

http://git-wip-us.apache.org/repos/asf/camel/blob/cdf0d0f9/components/camel-printer/src/test/java/org/apache/camel/component/printer/PrinterPrintTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-printer/src/test/java/org/apache/camel/component/printer/PrinterPrintTest.java
 
b/components/camel-printer/src/test/java/org/apache/camel/component/printer/PrinterPrintTest.java
index b20ae18..2a13670 100644
--- 
a/components/camel-printer/src/test/java/org/apache/camel/component/printer/PrinterPrintTest.java
+++ 
b/components/camel-printer/src/test/java/org/apache/camel/component/printer/PrinterPrintTest.java
@@ -329,6 +329,30 @@ public class PrinterPrintTest extends CamelTestSupport {
         assertEquals("middle", mediaTray.toString());
     }
     
+    @Test
+    public void printsWithLandscapeOrientation() throws Exception {
+        PrinterEndpoint endpoint = new PrinterEndpoint();
+        PrinterConfiguration configuration = new PrinterConfiguration();
+        configuration.setHostname("localhost");
+        configuration.setPort(631);
+        configuration.setPrintername("DefaultPrinter");
+        configuration.setMediaSizeName(MediaSizeName.ISO_A4);
+        configuration.setInternalSides(Sides.ONE_SIDED);
+        configuration.setMediaTray("middle");
+        configuration.setOrientation("landscape");
+
+        PrinterProducer producer = new PrinterProducer(endpoint, 
configuration);
+        producer.start();
+        PrinterOperations printerOperations = producer.getPrinterOperations();
+        PrintRequestAttributeSet attributeSet = 
printerOperations.getPrintRequestAttributeSet();
+
+        Attribute attribute = 
attributeSet.get(javax.print.attribute.standard.Media.class);
+        assertNotNull(attribute);
+        assertTrue(attribute instanceof MediaTray);
+        MediaTray mediaTray = (MediaTray) attribute;
+        assertEquals("middle", mediaTray.toString());
+    }
+
     protected void setupJavaPrint() {
         // "install" another default printer
         PrintService psDefault = mock(PrintService.class);

Reply via email to