/** * Show a dialog for printing the current drawing. * * @param fff the parent frame which will be used for dialogs and message boxes. * @param CCr the CircuitPanel containing the drawing to be exported. */ public void printDrawing(JFrame fff, CircuitPanel CCr) { cc = CCr; DialogPrint dp = new DialogPrint(fff); dp.setMirror(printMirror); dp.setFit(printFitToPage); dp.setBW(printBlackWhite); dp.setLandscape(printLandscape); dp.setVisible(true); // Get some information about the printing options. printMirror = dp.getMirror(); printFitToPage = dp.getFit(); printLandscape = dp.getLandscape(); printBlackWhite = dp.getBW(); Vector<LayerDesc> ol = cc.dmp.getLayers(); if (dp.shouldPrint()) { if (printBlackWhite) { Vector<LayerDesc> v = new Vector<LayerDesc>(); // Here we create an alternative array of layers in // which all colors are pitch black. This may be // useful for PCB's. for (int i = 0; i < LayerDesc.MAX_LAYERS; ++i) v.add( new LayerDesc( new ColorSwing(Color.black), ((LayerDesc) ol.get(i)).getVisible(), "B/W", ((LayerDesc) ol.get(i)).getAlpha())); cc.dmp.setLayers(v); } PrinterJob job = PrinterJob.getPrinterJob(); job.setPrintable(this); boolean ok = job.printDialog(); if (ok) { try { PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); // Set the correct printing orientation. if (printLandscape) { aset.add(OrientationRequested.LANDSCAPE); } else { aset.add(OrientationRequested.PORTRAIT); } job.print(aset); } catch (PrinterException ex) { // The job did not successfully complete JOptionPane.showMessageDialog(fff, Globals.messages.getString("Print_uncomplete")); } } cc.dmp.setLayers(ol); } }
/** * Get the control parameters of the given primitive. * * @return a vector of ParameterDescription containing each control parameter. The first * parameters should always be the virtual points. */ public Vector<ParameterDescription> getControls() { Vector<ParameterDescription> v = new Vector<ParameterDescription>(10); ParameterDescription pd = new ParameterDescription(); pd.parameter = name; pd.description = Globals.messages.getString("ctrl_name"); pd.isExtension = true; v.add(pd); pd = new ParameterDescription(); pd.parameter = value; pd.description = Globals.messages.getString("ctrl_value"); pd.isExtension = true; v.add(pd); return v; }
/** * Set the control parameters of the given primitive. This method is specular to getControls(). * * @param v a vector of ParameterDescription containing each control parameter. The first * parameters should always be the virtual points. * @return the next index in v to be scanned (if needed) after the execution of this function. */ public int setControls(Vector<ParameterDescription> v) { int i = 0; ParameterDescription pd; changed = true; pd = (ParameterDescription) v.get(i); ++i; // Check, just for sure... if (pd.parameter instanceof String) name = ((String) pd.parameter); else System.out.println("Warning: unexpected parameter!" + pd); pd = (ParameterDescription) v.get(i); ++i; // Check, just for sure... if (pd.parameter instanceof String) value = ((String) pd.parameter); else System.out.println("Warning: unexpected parameter!" + pd); return i; }