(* Copyright 1992 Digital Equipment Corporation.           *)
(* Distributed only by permission.                         *)
(* Last modified on Tue Aug  4 15:13:35 PDT 1992 by karlin     *)
(*      modified on Wed Jul 29 05:44:25 1992 by karsenty   *)
(*      modified on Wed Jul 22 01:10:06 1992 by mhb        *)

MODULE MFBarView;

IMPORT MaxflowViewClass, Filter, GraphVBT, PaintOpCache, R2, ColorName,
       TextVBT, View, ZeusPanel, Graph, List, Random, MFAlgs, Fmt,
       PaintOp, VBT, MaxflowIE, Rect, ZeusDataView, Font;

TYPE
  T = MaxflowViewClass.T BRANDED OBJECT

      OVERRIDES
        startrun := Startrun;
        oeSetup := Setup;
      END;

PROCEDURE Startrun (view: T) =
  (* sleazy hack: remove the old GraphVBT and just ignore it;
     heck, what else are VM and GC good for? *)
  BEGIN
    EVAL Filter.Replace(view, NEW(GraphVBT.T).init());
    (* call the superclass startrun in ZeusClass.T *)
    MaxflowViewClass.T.startrun(view); 
  END Startrun;


PROCEDURE Setup (view: T; g: Graph.T; source, sink: Graph.Vertex) =
  VAR
      wc := GraphVBT.WorldRectangle{
            w := 0.0, s := 0.0, e := 1.0, n := 1.0};

  BEGIN
    view.gvbt  := NEW(GraphVBT.T, world := wc).init();
    EVAL Filter.Replace(view, view.gvbt);
    view.gvbt.redisplay();
  END Setup;

PROCEDURE New (): View.T =
  VAR a : T :=  NEW(T).init(TextVBT.New("Maximum flow"));
  BEGIN
    RETURN a;
  END New;

BEGIN
  ZeusPanel.RegisterView (New, "Bar View", "Maxflow");

END MFBarView.
