Package com.cburch.logisim.analyze.gui

Source Code of com.cburch.logisim.analyze.gui.TruthTableMouseListener

/* Copyright (c) 2010, Carl Burch. License information is located in the
* com.cburch.logisim.Main source code and at www.cburch.com/logisim/. */

package com.cburch.logisim.analyze.gui;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import com.cburch.logisim.analyze.model.Entry;
import com.cburch.logisim.analyze.model.TruthTable;

class TruthTableMouseListener implements MouseListener {
  private int cellX;
  private int cellY;
  private Entry oldValue;
  private Entry newValue;
 
  public void mousePressed(MouseEvent event) {
    TruthTablePanel source = (TruthTablePanel) event.getSource();
    TruthTable model = source.getTruthTable();
    int cols = model.getInputColumnCount() + model.getOutputColumnCount();
    int rows = model.getRowCount();
    cellX = source.getOutputColumn(event);
    cellY = source.getRow(event);
    if (cellX < 0 || cellY < 0 || cellX >= cols || cellY >= rows) return;
    oldValue = source.getTruthTable().getOutputEntry(cellY, cellX);
    if (oldValue == Entry.ZERO)     newValue = Entry.ONE;
    else if (oldValue == Entry.ONE) newValue = Entry.DONT_CARE;
    else                           newValue = Entry.ZERO;
    source.setEntryProvisional(cellY, cellX, newValue);
  }
  public void mouseReleased(MouseEvent event) {
    TruthTablePanel source = (TruthTablePanel) event.getSource();
    TruthTable model = source.getTruthTable();
    int cols = model.getInputColumnCount() + model.getOutputColumnCount();
    int rows = model.getRowCount();
    if (cellX < 0 || cellY < 0 || cellX >= cols || cellY >= rows) return;

    int x = source.getOutputColumn(event);
    int y = source.getRow(event);
    TruthTable table = source.getTruthTable();
    if (x == cellX && y == cellY) {
      table.setOutputEntry(y, x, newValue);
    }
    source.setEntryProvisional(cellY, cellX, null);
    cellX = -1;
    cellY = -1;
  }

  public void mouseClicked(MouseEvent e) { }
  public void mouseEntered(MouseEvent e) { }
  public void mouseExited(MouseEvent e) { }
}
TOP

Related Classes of com.cburch.logisim.analyze.gui.TruthTableMouseListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.