Skip to content
Snippets Groups Projects
Commit eee874d9 authored by Andrey Ruzhanskiy's avatar Andrey Ruzhanskiy
Browse files

Made buildable again

parent c03da507
No related branches found
No related tags found
1 merge request!41Feat/print byte dump 56
......@@ -43,7 +43,6 @@ import tec.units.ri.unit.MetricPrefix;
import javax.measure.Quantity;
import javax.measure.quantity.Length;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
......
......@@ -8,6 +8,7 @@ import de.tudresden.inf.mci.brailleplot.printabledata.PrintableData;
* from the Index PrinterCapability Interface Protocol V5_V4 2ß16-05-13. All the variables with the respective values have no
* particular order (except mStartTemporaryDoc, which must be at the beginning). All the variable names are set to
* final, these are PrinterCapability specific values that should not be changed.
* @param <T> Type of Data, must extend PrintableData.
* @author Andrey Ruzhanskiy
* @version 31.05.2019
*/
......
......@@ -8,8 +8,6 @@ import tec.units.ri.unit.MetricPrefix;
import javax.measure.Quantity;
import javax.measure.quantity.Length;
import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Iterator;
import java.util.Locale;
......@@ -30,7 +28,6 @@ class FloatingDotAreaBuilder extends AbstractIndexV4Builder<SimpleFloatingPointD
* Constructor. Does not have any functionality. Should only be used in {@link PrintDirector}
*/
FloatingDotAreaBuilder() { }
//private int l;
/**
* Currently not implemented.
......@@ -38,24 +35,10 @@ class FloatingDotAreaBuilder extends AbstractIndexV4Builder<SimpleFloatingPointD
* @return Exception.
*/
@Override
byte[] assemble(final SimpleFloatingPointDataImpl<Boolean> data){
byte[] assemble(final SimpleFloatingPointDataImpl<Boolean> data) {
mData = Objects.requireNonNull(data);
Iterator<Point2DValued<Quantity<Length>, Boolean>> iter = mData.getIterator();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
//FileOutputStream stream = null;
/*
try {
stream = new FileOutputStream(String.valueOf(l));
} catch (FileNotFoundException e) {
e.getCause();
}
*/
//l++;
try {
stream.write(mStartFloatingMode);
// Here goes Origo, Width and Height
......@@ -73,7 +56,6 @@ class FloatingDotAreaBuilder extends AbstractIndexV4Builder<SimpleFloatingPointD
stream.write(xFormated.getBytes());
stream.write(mColon);
stream.write(yFormated.getBytes());
//stream.write(y.floatValue());
if (iter.hasNext()) {
stream.write(mNewLine);
}
......
......@@ -33,7 +33,7 @@ class NormalBuilder extends AbstractDocumentBuilder<MatrixData<Boolean>> {
* @return the final, printable document.
*/
@Override
byte[] assemble(MatrixData<Boolean> data) {
byte[] assemble(final MatrixData<Boolean> data) {
//Check if null object was given.
......
......@@ -6,7 +6,14 @@ import de.tudresden.inf.mci.brailleplot.printabledata.PrintableData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.print.*;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.JobName;
......@@ -42,7 +49,7 @@ public class PrintDirector {
Objects.requireNonNull(printerConfig);
this.mPrinter = printerCap;
mPrinterName = printerConfig.getProperty("name").toString();
mLogger.trace("using following printercapability {}", printerCap.toString()," loaded.");
mLogger.trace("using following printercapability {}", printerCap.toString(), " loaded.");
mLogger.info("using the following printer: {}.", mPrinterName);
switch (mPrinter) {
case NORMALPRINTER:
......@@ -89,8 +96,13 @@ public class PrintDirector {
print(result);
}
/**
* Method for creating the byte array form the printing process.
* @param data Data to be later dumped.
* @return Byte array containing the sequence for the printer.
*/
@SuppressWarnings("unchecked")
public byte[] textDump(PrintableData data) {
public byte[] textDump(final PrintableData data) {
mLogger.info("starting with textdump process.");
byte[] result;
try {
......@@ -175,16 +187,20 @@ public class PrintDirector {
return true;
}
/**
* Eventlistener which receives updates regarding printing.
* Because of enormous shortcoming in the implementation of printing in java, some events are never received.
*/
private class PrintJobListener implements javax.print.event.PrintJobListener {
boolean done = false;
@Override
public void printDataTransferCompleted(PrintJobEvent pje) {
public void printDataTransferCompleted(final PrintJobEvent pje) {
mLogger.info("data transfer to printer complete.");
}
@Override
public void printJobCompleted(PrintJobEvent pje) {
public void printJobCompleted(final PrintJobEvent pje) {
mLogger.info("printjob completed.");
synchronized (PrintJobListener.this) {
done = true;
......@@ -193,7 +209,7 @@ public class PrintDirector {
}
@Override
public void printJobFailed(PrintJobEvent pje) {
public void printJobFailed(final PrintJobEvent pje) {
mLogger.info("printjob failed.");
synchronized (PrintJobListener.this) {
done = true;
......@@ -202,7 +218,7 @@ public class PrintDirector {
}
@Override
public void printJobCanceled(PrintJobEvent pje) {
public void printJobCanceled(final PrintJobEvent pje) {
mLogger.info("printjob was canceled.");
synchronized (PrintJobListener.this) {
done = true;
......@@ -211,7 +227,7 @@ public class PrintDirector {
}
@Override
public void printJobNoMoreEvents(PrintJobEvent pje) {
public void printJobNoMoreEvents(final PrintJobEvent pje) {
mLogger.info("printjob has no more events.");
synchronized (PrintJobListener.this) {
done = true;
......@@ -219,12 +235,13 @@ public class PrintDirector {
}
@Override
public void printJobRequiresAttention(PrintJobEvent pje) {
public void printJobRequiresAttention(final PrintJobEvent pje) {
mLogger.info("printjob requires attention.");
PrintJobListener.this.notify();
}
public synchronized void waitForDone() {
try {
// Not busy waiting, sleeping as long as not notified.
while (!done) {
wait();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment