view import/model.d @ 0:e907d2c54ec3

Initial import
author David Bryant <daveb@acres.com.au>
date Wed, 13 May 2009 15:42:39 +0930
parents
children
line wrap: on
line source

module interaction.model;

import presentation.model;

final class Manipulator {
}

abstract class Selector {
    Selector(Fig selected) {
        _selected = selected;
    }

    Fig selected() { return _selected; }

    abstract void draw(Screen screen);

    private {
        Fig _selected;
    }
}

abstract class Fig {
    DiagramElement element() { return _element; }

    abstract void draw(Canvas canvas);

    abstract Selector create_selector();

    private {
        DiagramElement _element;
    }
}

abstract class NetFig : Fig {
    GraphElement element() { return _element; }

    private {
        GraphElement _element;
    }
}

abstract class EdgeFig : NetFig {
    GraphEdge element() { return _element; }

    private {
        GraphEdge _element;
    }
}

abstract class NodeFig : NetFig {
    GraphNode element() { return _element; }

    private {
        GraphNode _element;
    }
}