franciscaconcha / ProyectoLogisim

Ingeniería de Software - Proyecto Logisim
GNU General Public License v2.0
4 stars 1 forks source link

¿Como se pintan los "wire"? #127

Closed JoseTapiaG closed 10 years ago

JoseTapiaG commented 10 years ago

Se debe buscar de que forma se pintan los wire (conexiones) de un circuito

JoseTapiaG commented 10 years ago

Cada vez que ocurre un evento en el canvas, luego de procesar los estados del circuito, se llega a un método encargado de pintar cada componente en la clase Canvas.java:417 en el método:

public void draw( ComponentDrawContext context, Collection hidden ) {

              .....................................................
        for( Component c : comps ) {
            Graphics g_new = g.create();
            context.setGraphics( g_new );
            g_copy.dispose();
            g_copy = g_new;

            c.draw( context );               // aca se pinta el componente
        }
    }

Y luego despues de muchos metodos se llega a la clase ComponentDrawContext:232 y se ejecuta el método g.setColor(state.getValue(pt).getColor()); Acá se pinta de acuerdo al estado del circuito que se puede ver en la clase Value.java:415 en el método: public Color getColor() { if (error != 0) { return ERROR_COLOR; } else if (width == 0) { return NIL_COLOR; } else if (width == 1) { if (this == UNKNOWN) return UNKNOWN_COLOR; else if (this == TRUE) return TRUE_COLOR; else return FALSE_COLOR; } else { return MULTI_COLOR; } }

Error_Color es el color de los wire.