⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nwtable.java

📁 Sequence alignement using different algorithms
💻 JAVA
字号:
package norman.baba.grids;

import java.util.*;
import java.awt.*;
import norman.baba.utils.*;

/**
 * <p>Title: BABA</p>
 * <p>Description: Bioinformatique Research Project</p>
 * <p>Copyright: Copyright Norman Casagrande (c) 2003</p>
 * <p>Company: </p>
 * @author Norman Casagrande
 * @version 1.0
 */

public class NWTable
    extends DPTable {

   public NWTable(int nHCells, int nVCells) {
      super(nHCells, nVCells);
   }

   public void setGridSize(int nHCells, int nVCells, boolean updateAreaSize) {

      m_nHCells = nHCells;
      m_nVCells = nVCells;

      m_cells = new ScoredCellElement[m_nHCells][m_nVCells];
      int c, r;
      for (r = 0; r < m_nVCells; ++r) {
         for (c = 0; c < m_nHCells; ++c) {
            m_cells[c][r] = new ScoredCellElement(c, r,
                                                  BasicGrid.GRID_BACKGROUND_COLOR);
         }
      }

      m_areaSize = null;

      if (updateAreaSize) {
         this.setDrawAreaSize();
      }
   }

   /**
    * In this method the offscreen image for double buffering is created
    * (if doesn't exists).
    *
    * @param g The Graphics class where to paint.
    */
   public void paint(Graphics g) {
      if (m_areaSize == null) {
         this.setDrawAreaSize();
      }

      this.drawGrid(m_offScreenGraphics);
      this.drawScores(m_offScreenGraphics);

      this.drawArrows(m_offScreenGraphics);

      g.drawImage(m_offScreenImage,
                  m_centeredImgStartPos.x,
                  m_centeredImgStartPos.y, this);
   }

   public void drawScores(Graphics g) {

      int x, y;
      int r, c;

      Graphics2D g2d = (Graphics2D) g;

      if (m_activeAntialias) {
         g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                              RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
      }

      double scoreFontSize = m_originalFontSize / 1.3;

      Font scoreFont = new Font(null,
                                Font.PLAIN,
                                (int) (scoreFontSize * m_zoomLevel));

      FontMetrics fm = getFontMetrics(scoreFont);
      int fontWidth = 0;
      String val;

      g.setFont(scoreFont);
      g.setColor(Color.red);

      ScoredCellElement tmpCell;

      for (r = 1; r < m_nVCells; ++r) {
         for (c = 1; c < m_nHCells; ++c) {

            tmpCell = (ScoredCellElement)m_cells[c][r];

            if (tmpCell.getScoreVal() != null) {
               val = tmpCell.getScoreVal();
               fontWidth = fm.stringWidth(val);

               x = (c+1) * m_cellSize - 4 - fontWidth;
               y = r * m_cellSize + 1 + fm.getAscent(); ;

               g.drawString(val, x, y);
            }
         }
      }
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -