-
Notifications
You must be signed in to change notification settings - Fork 0
/
Constructon.cs
132 lines (117 loc) · 3.4 KB
/
Constructon.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;
namespace GeoGebra_v1._0
{
//fhghdjkghsdfhgjkghsdf
public class Construction
{
List<Shape> shapes;
private Construction()
{
this.shapes = new List<Shape>();
this.representations = new List<Representation>();
}
public static Construction getConstruction()
{
if (Construction.construction == null)
{
Construction.construction = new Construction();
}
return Construction.construction;
}
static Construction construction;
public void AddShape(Shape o)
{
shapes.Add(o);
foreach (var representation in representations)
representation.ShowShape(o, g);
}
Grid g;
public void RegisterGrid(Grid g)
{
this.g = g;
foreach (var representation in representations)
representation.ShowGrid(g);
}
public void RegisterRepresentation(Representation representation)
{
representations.Add(representation);
}
List<Representation> representations;
//Temporary Shapes And Representations
List<Shape> tempshapes = new List<Shape>();
public void AddTempShape(Shape s)
{
tempshapes.Add(s);
foreach (var temprepresentation in temprepresentations)
{
temprepresentation.Start();
temprepresentation.ShowShape(s, g);
}
}
public void ClearTempShapes()
{
tempshapes.Clear();
}
List<Representation> temprepresentations = new List<Representation>();
public void RegisterTempRepresentation(Representation temprepresentation)
{
temprepresentations.Add(temprepresentation);
}
public void ClearTempRepresentations()
{
temprepresentations.Clear();
}
}
public abstract class Representation
{
public abstract void Start();
public abstract void ShowShape(Shape o, Grid g);
public abstract void ShowGrid(Grid g);
}
public class RepresentationListBox : Representation
{
ListBox lb;
public RepresentationListBox(ListBox lb)
{
this.lb = lb;
}
public override void Start()
{
lb.Items.Clear();
}
public override void ShowShape(Shape o, Grid g)
{
lb.Items.Add(o.ToString(g));
}
public override void ShowGrid(Grid g)
{
lb.Items.Add(g.ToString());
}
}
public class RepresentationPictureBox : Representation
{
PictureBox pb;
public RepresentationPictureBox(PictureBox pb)
{
this.pb = pb;
}
public override void Start()
{
pb.Refresh();
}
public override void ShowShape(Shape o, Grid g)
{
o.Draw(this.pb);
}
public override void ShowGrid(Grid g)
{
g.Draw(this.pb);
}
}
}