Beispiel #1
0
  /**
   * 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);
    }
  }
Beispiel #2
0
  /**
   * 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;
  }
Beispiel #3
0
  /**
   * 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;
  }