コード例 #1
0
ファイル: ThreeDTab.java プロジェクト: imr/Electric8
 // the MouseListener events
 public void mousePressed(MouseEvent evt) {
   Dimension dim = getSize();
   String layerName = (String) dialog.threeDLayerList.getSelectedValue();
   Layer selectedLayer = dialog.curTech.findLayer(layerName);
   GenMath.MutableDouble height = dialog.threeDDistanceMap.get(selectedLayer);
   int yValue =
       dim.height
           - (int)
               ((height.doubleValue() - lowHeight) / (highHeight - lowHeight) * dim.height
                   + 0.5);
   if (Math.abs(yValue - evt.getY()) > 5) {
     int bestDist = dim.height;
     for (Iterator<Layer> it = dialog.curTech.getLayers(); it.hasNext(); ) {
       Layer layer = it.next();
       if (layer.isPseudoLayer()) continue;
       height = dialog.threeDDistanceMap.get(layer);
       yValue =
           dim.height
               - (int)
                   ((height.doubleValue() - lowHeight) / (highHeight - lowHeight) * dim.height
                       + 0.5);
       int dist = Math.abs(yValue - evt.getY());
       if (dist < bestDist) {
         bestDist = dist;
         selectedLayer = layer;
       }
     }
     dialog.threeDLayerList.setSelectedValue(selectedLayer.getName(), true);
     dialog.threeDValuesChanged(false);
   }
 }
コード例 #2
0
ファイル: ThreeDTab.java プロジェクト: imr/Electric8
  /**
   * Method called at the start of the dialog. Caches current values and displays them in the 3D
   * tab.
   */
  @Override
  public void init() {
    threeDTechnology.setText("Layer cross section for technology '" + curTech.getTechName() + "'");
    threeDLayerModel = new DefaultListModel();
    threeDLayerList = new JList(threeDLayerModel);
    threeDLayerList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    threeDLayerPane.setViewportView(threeDLayerList);
    threeDLayerList.clearSelection();
    threeDLayerList.addMouseListener(
        new MouseAdapter() {
          public void mouseClicked(MouseEvent evt) {
            threeDValuesChanged(false);
          }
        });
    threeDThicknessMap = new HashMap<Layer, GenMath.MutableDouble>();
    threeDDistanceMap = new HashMap<Layer, GenMath.MutableDouble>();
    // Sorted by Height to be consistent with LayersTab
    for (Layer layer : curTech.getLayersSortedByName()) {
      if (layer.isPseudoLayer()) continue;
      threeDLayerModel.addElement(layer.getName());
      double thickness = getDouble(layer.getThicknessSetting());
      double distance = getDouble(layer.getDistanceSetting());
      threeDThicknessMap.put(layer, new GenMath.MutableDouble(thickness));
      threeDDistanceMap.put(layer, new GenMath.MutableDouble(distance));
    }
    threeDLayerList.setSelectedIndex(0);
    threeDHeight.getDocument().addDocumentListener(new ThreeDInfoDocumentListener(this));
    threeDThickness.getDocument().addDocumentListener(new ThreeDInfoDocumentListener(this));

    threeDSideView = new ThreeDSideView(this);
    threeDSideView.setMinimumSize(new java.awt.Dimension(200, 450));
    threeDSideView.setPreferredSize(new java.awt.Dimension(200, 450));
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.gridx = 2;
    gbc.gridy = 1;
    gbc.gridwidth = 2;
    gbc.gridheight = 4;
    gbc.weightx = 0.5;
    gbc.weighty = 1.0;
    gbc.fill = GridBagConstraints.BOTH;
    gbc.insets = new java.awt.Insets(4, 4, 4, 4);
    threeD.add(threeDSideView, gbc);
    threeDValuesChanged(false);
  }
コード例 #3
0
ファイル: ThreeDTab.java プロジェクト: imr/Electric8
 public void removeUpdate(DocumentEvent e) {
   dialog.threeDValuesChanged(true);
 }
コード例 #4
0
ファイル: ThreeDTab.java プロジェクト: imr/Electric8
 public void insertUpdate(DocumentEvent e) {
   dialog.threeDValuesChanged(true);
 }