Supporting Developers’ Coordination in The IDE
Investigating how developers experience teamwork and identify problems they face when working in team.
Investigating how developers experience teamwork and identify problems they face when working in team.
Supporting Developers’ Coordination in The IDE
Devising and evaluating an IDE extension to support teamwork.
Investigating how developers experience teamwork and identify problems they face when working in team.
Exploratory Investigation
Exploratory Investigation: Methodology
brainstorming(9 experts)
interviews (11 professional developers)
analysis of transcripts and memos with card sorting
themes’ analysis with affinity diagram
working situation
working situation
How developers experience teamwork
1. They spend most the time doing individual work
2. Most of their interaction is to coordinate (e.g., through daily stand-ups)
3. Collaboration happens infrequently and on a need basis (e.g., sprint meetings)
4. Their intention for collaboration is mostly coordination, leading to individual work
Exploratory Investigation: Findings
individual work
coordination
collaboration
interactionlevel
Exploratory Investigation: Findings
individual work
coordination
collaboration
interactionlevel
information
How developers experience teamwork: role of information
1. They spend most the time doing individual work
2. Most of their interaction is to coordinate (e.g., through daily stand-ups)
3. Collaboration happens infrequently and on a need basis (e.g., sprint meetings)
4. Their intention for collaboration is mostly coordination, leading to individual work
Exploratory Investigation: Findings
Three problematic scenarios
inefficient task assignment
simultaneous conflicting changes
breaking changes
Needed information
ProblematicCommunicated Visible
✔ ✔ ✘
✘ ✔ ✘
✘ ✘ ﹅Exploratory Investigation: Findings
Three problematic scenarios: role of information
inefficient task assignment
simultaneous conflicting changes
breaking changes
Exploratory Investigation: Selected implications
support for coordination has more potential
literature must be tested on current practices
receiving internal changes is experienced as painful
Supporting Developers’ Coordination in The IDE
Devising and evaluating an IDE extension to support teamwork.
support for coordination has more potential
literature must be tested on current practices
receiving internal changes is experienced as painful
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
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"
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"
Pending Outgoing
! Pending Incoming
app.config
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml.cs replaced
Window1.xaml.cs edited
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
"""///"<summary>""""///"TODO:"Autogenerated"comment""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor());"""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstructor.MouseExited);"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectConstructor.MousePressed);"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectConstructor.MouseReleased);"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstructor.MouseMoved);"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
""""///"<summary>"""""///"Interaction"logic"for"Window1.xaml"""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor("""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstr"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectC"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectCon"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstru"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
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"Window1.xaml.cs,0#latest! Window1.xaml.cs,0#current0
edited edited
edited edited
added edited
Current IDEs’ support for receiving changes
Current IDEs’ support for receiving changesh"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
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"
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"
Pending Outgoing
! Pending Incoming
app.config
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml.cs replaced
Window1.xaml.cs edited
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
"""///"<summary>""""///"TODO:"Autogenerated"comment""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor());"""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstructor.MouseExited);"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectConstructor.MousePressed);"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectConstructor.MouseReleased);"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstructor.MouseMoved);"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
""""///"<summary>"""""///"Interaction"logic"for"Window1.xaml"""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor("""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstr"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectC"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectCon"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstru"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
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"Window1.xaml.cs,0#latest! Window1.xaml.cs,0#current0
edited edited
edited edited
added edited
Unmet usability heuristics
Current IDEs’ support for receiving changes
no support for:- recognition over recall
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
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"
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"
Pending Outgoing
! Pending Incoming
app.config
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml.cs replaced
Window1.xaml.cs edited
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
"""///"<summary>""""///"TODO:"Autogenerated"comment""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor());"""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstructor.MouseExited);"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectConstructor.MousePressed);"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectConstructor.MouseReleased);"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstructor.MouseMoved);"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
""""///"<summary>"""""///"Interaction"logic"for"Window1.xaml"""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor("""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstr"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectC"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectCon"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstru"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
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"Window1.xaml.cs,0#latest! Window1.xaml.cs,0#current0
edited edited
edited edited
added edited
Unmet usability heuristics
Recognition over recall “Memory for recognizing things is better than memory for recalling things” —Nielsen 1995
Current IDEs’ support for receiving changes
no support for:- recognition over recall- visibility of system status
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
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"
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"
Pending Outgoing
! Pending Incoming
app.config
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml.cs replaced
Window1.xaml.cs edited
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
"""///"<summary>""""///"TODO:"Autogenerated"comment""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor());"""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstructor.MouseExited);"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectConstructor.MousePressed);"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectConstructor.MouseReleased);"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstructor.MouseMoved);"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
""""///"<summary>"""""///"Interaction"logic"for"Window1.xaml"""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor("""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstr"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectC"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectCon"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstru"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
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"Window1.xaml.cs,0#latest! Window1.xaml.cs,0#current0
edited edited
edited edited
added edited
Unmet usability heuristics
Visibility of system status “The system should always keep users informed about what is going on” —Nielsen 1995
Current IDEs’ support for receiving changes
no support for:- recognition over recall- visibility of system status- clearly marked exits
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
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"
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"
Pending Outgoing
! Pending Incoming
app.config
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml.cs replaced
Window1.xaml.cs edited
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
"""///"<summary>""""///"TODO:"Autogenerated"comment""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor());"""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstructor.MouseExited);"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectConstructor.MousePressed);"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectConstructor.MouseReleased);"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstructor.MouseMoved);"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
""""///"<summary>"""""///"Interaction"logic"for"Window1.xaml"""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor("""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstr"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectC"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectCon"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstru"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
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"Window1.xaml.cs,0#latest! Window1.xaml.cs,0#current0
edited edited
edited edited
added edited
Unmet usability heuristics
Clearly marked exits “A system should never capture users in situations that have no visible escape” — Molich & Nielsen 1990
Current IDEs’ support for receiving changes
no support for:- recognition over recall- visibility of system status- clearly marked exits- help and documentation
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
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"
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"
Pending Outgoing
! Pending Incoming
app.config
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml.cs replaced
Window1.xaml.cs edited
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
"""///"<summary>""""///"TODO:"Autogenerated"comment""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor());"""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstructor.MouseExited);"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectConstructor.MousePressed);"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectConstructor.MouseReleased);"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstructor.MouseMoved);"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
""""///"<summary>"""""///"Interaction"logic"for"Window1.xaml"""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor("""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstr"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectC"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectCon"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstru"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
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"Window1.xaml.cs,0#latest! Window1.xaml.cs,0#current0
edited edited
edited edited
added edited
Unmet usability heuristics
Help and documentation “[Documentation should] be easy to search, focused on the user’s task, list concrete steps to be carried out, and not be too large” — Nielsen 1995
Current IDEs’ support for receiving changes
no support for:- recognition over recall- visibility of system status- clearly marked exits- help and documentation- help recognize, diagnose, and recover
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
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"
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"
Pending Outgoing
! Pending Incoming
app.config
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml.cs replaced
Window1.xaml.cs edited
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
"""///"<summary>""""///"TODO:"Autogenerated"comment""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor());"""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstructor.MouseExited);"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectConstructor.MousePressed);"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectConstructor.MouseReleased);"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstructor.MouseMoved);"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
""""///"<summary>"""""///"Interaction"logic"for"Window1.xaml"""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor("""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstr"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectC"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectCon"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstru"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
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"Window1.xaml.cs,0#latest! Window1.xaml.cs,0#current0
edited edited
edited edited
added edited
Unmet usability heuristics
Help users recognize, diagnose, and recover from errors — Nielsen 1995
Current IDEs’ support for receiving changes
no support for:- recognition over recall- visibility of system status- clearly marked exits- help and documentation- help recognize, diagnose, and recover
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
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"
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"
Pending Outgoing
! Pending Incoming
app.config
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml.cs replaced
Window1.xaml.cs edited
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
"""///"<summary>""""///"TODO:"Autogenerated"comment""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor());"""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstructor.MouseExited);"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectConstructor.MousePressed);"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectConstructor.MouseReleased);"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstructor.MouseMoved);"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
""""///"<summary>"""""///"Interaction"logic"for"Window1.xaml"""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor("""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstr"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectC"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectCon"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstru"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
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"Window1.xaml.cs,0#latest! Window1.xaml.cs,0#current0
edited edited
edited edited
added edited
Design requirements:
- recognition over recall - visibility of system status - clearly marked exits - help and documentation - help recognize, diagnose, and recover
Designing and evaluating Bellevue: Methodology
RITE(9 participants)
feedback’s analysis
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint
# bin
# obj
# Properties
app.config
App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList
…
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
129"130"131"132"133"134"135"136"137"138"139"140"141"142"143"144"145"146"147"148"149"150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 4 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}""""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1404
PaintCanvas.cs [ ]
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...4
...""""...4
...""""...4
" Paint
app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvas.cs [ ]
Latest changes only [7 files]
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint
# bin
# obj
# Properties
app.config
App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList
…
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
129"130"131"132"133"134"135"136"137"138"139"140"141"142"143"144"145"146"147"148"149"150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 4 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}""""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1404
PaintCanvas.cs [ ]
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...4
...""""...4
...""""...4
" Paint
app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvas.cs [ ]
Latest changes only [7 files]
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint
# bin
# obj
# Properties
app.config
App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList
…
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
129"130"131"132"133"134"135"136"137"138"139"140"141"142"143"144"145"146"147"148"149"150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 4 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}""""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1404
PaintCanvas.cs [ ]
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...4
...""""...4
...""""...4
" Paint
app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvas.cs [ ]
Latest changes only [7 files]
Bellevue prototypeas slide deck
early feedback(several UX experts)
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint
# bin
# obj
# Properties
app.config
App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList
…
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
129"130"131"132"133"134"135"136"137"138"139"140"141"142"143"144"145"146"147"148"149"150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 4 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}""""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1404
PaintCanvas.cs [ ]
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...4
...""""...4
...""""...4
" Paint
app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvas.cs [ ]
Latest changes only [7 files]
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint
# bin
# obj
# Properties
app.config
App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList
…
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
129"130"131"132"133"134"135"136"137"138"139"140"141"142"143"144"145"146"147"148"149"150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 4 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}""""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1404
PaintCanvas.cs [ ]
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...4
...""""...4
...""""...4
" Paint
app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvas.cs [ ]
Latest changes only [7 files]
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint
# bin
# obj
# Properties
app.config
App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList
…
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
129"130"131"132"133"134"135"136"137"138"139"140"141"142"143"144"145"146"147"148"149"150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 4 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}""""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1404
PaintCanvas.cs [ ]
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...4
...""""...4
...""""...4
" Paint
app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvas.cs [ ]
Latest changes only [7 files]
FINALBellevue design
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint
# bin
# obj
# Properties
app.config
App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList
…
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
129"130"131"132"133"134"135"136"137"138"139"140"141"142"143"144"145"146"147"148"149"150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 4 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}""""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1404
PaintCanvas.cs [ ]
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...4
...""""...4
...""""...4
" Paint
app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvas.cs [ ]
Latest changes only [7 files]
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint
# bin
# obj
# Properties
app.config
App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList
…
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
129"130"131"132"133"134"135"136"137"138"139"140"141"142"143"144"145"146"147"148"149"150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 4 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}""""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1404
PaintCanvas.cs [ ]
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...4
...""""...4
...""""...4
" Paint
app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvas.cs [ ]
Latest changes only [7 files]
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint
# bin
# obj
# Properties
app.config
App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList
…
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
129"130"131"132"133"134"135"136"137"138"139"140"141"142"143"144"145"146"147"148"149"150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 4 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}""""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1404
PaintCanvas.cs [ ]
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...4
...""""...4
...""""...4
" Paint
app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvas.cs [ ]
Latest changes only [7 files]
Bellevue initial ideaas slide deck
The story… James works on the Paint project with other 4 people. It’s morning and James has just got to work. James starts the day by updating his codebase to the latest version.
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
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"
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"
&&
Pending Outgoing ! Pending Incoming
app.config
LinePaint.cs
PaintCanvas.cs PaintCanvasCommands.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml.cs
edited edited
edited edited
added edited
edited
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
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"
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"
&&
Pending Outgoing ! Pending Incoming
app.config
LinePaint.cs
PaintCanvas.cs PaintCanvasCommands.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml.cs replaced
Window1.xaml.cs edited
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
"""///"<summary>""""///"TODO:"Autogenerated"comment""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor());"""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstructor.MouseExited);"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectConstructor.MousePressed);"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectConstructor.MouseReleased);"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstructor.MouseMoved);"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Controls;"using"System.Windows.Data;"using"System.Windows.Documents;"using"System.Windows.Input;"using"System.Windows.Media;"
using"System.Windows.Media.Imaging;"using"System.Windows.Navigation;"using"System.Windows.Shapes;""namespace"Paint"{"
""""///"<summary>"""""///"Interaction"logic"for"Window1.xaml"""""///"</summary>"""""public"partial"class"Window1":"Window,"IPaintObjectConstructorListener"""""{"
""""""""private"PaintObjectConstructor"objectConstructor;""""""""""public"Window1()"""""""""{"""""""""""""InitializeComponent();"
""""""""""""this.Loaded"+="new"RoutedEventHandler(Window1_Loaded);"""""""""}""""""""""public"void"Window1_Loaded(object"sender,"RoutedEventArgs"e)"""""""""{"
""""""""""""objectConstructor"="new"PaintObjectConstructor(this);"""""""""""""objectConstructor.setType("Paint.PencilPaint");"""""""""""""objectConstructor.setColor(ColorSliderPanel.getStartingColor("""""""""""""objectConstructor.setThickness(5);""
""""""""""""DrawingCanvas.MouseLeave"+="new"MouseEventHandler(objectConstr"""""""""""""DrawingCanvas.MouseDown"+="new"MouseButtonEventHandler(objectC"""""""""""""DrawingCanvas.MouseUp"+="new"MouseButtonEventHandler(objectCon"""""""""""""DrawingCanvas.MouseMove"+="new"MouseEventHandler(objectConstru"
""""""""}""""""""""private"void"SetPaintColor(object"sender,"ColorChangedEventArgs"e)"""""""""{"""""""""""""objectConstructor.setColor(e.ColorValue);"
""""""""}""
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"Window1.xaml.cs,0#latest! Window1.xaml.cs,0#current0
edited edited
edited edited
added edited
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
" Paint # bin
# obj
# Properties
app.config [ ] App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml
Window1.xaml.cs [ ]
Latest changes only [7 files]
James immediately notices the files that have changed.
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
" Paint # bin
# obj
# Properties
app.config [ ] App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml
Window1.xaml.cs [ ]
Latest changes only [7 files]
Also, he can apply some filtering to just see the latest changes.
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvasCommands.cs [ ]
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows.Input;"
"namespace"Paint"{""""""public"static"class"PaintCanvasCommands"
""""{"""""""""static"PaintCanvasCommands()"""""""""{"""""""""""""ClearCanvas"="new"RoutedUICommand("""""""""""""""""Clear"Canvas",""ClearCanvas",""""""""""""""""typeof(PaintCanvasCommands));"
"""""""""""""UndoCanvas"="new"RoutedUICommand("""""""""""""""""Undo"my"last"stroke",""UndoCanvas",""""""""""""""""typeof(PaintCanvasCommands));""
""""""""""""ChangeToPencil"="new"RoutedUICommand(""""""""""""""""""Pencil",""ChangeToPencil","""""""""""""""""typeof(PaintCanvasCommands));""""""""""""""ChangeToEraser"="new"RoutedUICommand("
"""""""""""""""""Eraser",""ChangeToEraser","""""""""""""""""typeof(PaintCanvasCommands));""""""""""""""ChangeToLine"="new"RoutedUICommand(""""""""""""""""""Line",""ChangeToLine","
""""""""""""""""typeof(PaintCanvasCommands));""""""""""""""ChangeToRect"="new"RoutedUICommand(""""""""""""""""""Rect",""ChangeToRect","""""""""""""""""typeof(PaintCanvasCommands));"
""""""""}"""""""""//"getters"and"setters"from"here"on:""""""""""
""""""""public"static"RoutedUICommand"ClearCanvas"""""""""{"""""""""""""get;"""""""""""""set;"""""""""}"""""""""Latest changes only [7 files]
390
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows.Input;"
"namespace"Paint"{""""""public"static"class"PaintCanvasCommands"
""""{"""""""""static"PaintCanvasCommands()"""""""""{"""""""""""""ClearCanvas"="new"RoutedUICommand("""""""""""""""""Clear"Canvas",""ClearCanvas",""""""""""""""""typeof(PaintCanvasCommands));"
"""""""""""""UndoCanvas"="new"RoutedUICommand("""""""""""""""""Undo"my"last"stroke",""UndoCanvas",""""""""""""""""typeof(PaintCanvasCommands));""
""""""""""""ChangeToPencil"="new"RoutedUICommand(""""""""""""""""""Pencil",""ChangeToPencil","""""""""""""""""typeof(PaintCanvasCommands));""""""""""""""ChangeToEraser"="new"RoutedUICommand("
"""""""""""""""""Eraser",""ChangeToEraser","""""""""""""""""typeof(PaintCanvasCommands));""""""""""""""ChangeToLine"="new"RoutedUICommand(""""""""""""""""""Line",""ChangeToLine","
""""""""""""""""typeof(PaintCanvasCommands));""""""""""""""ChangeToRect"="new"RoutedUICommand(""""""""""""""""""Rect",""ChangeToRect","""""""""""""""""typeof(PaintCanvasCommands));"
""""""""}"""""""""//"getters"and"setters"from"here"on:""""""""""
""""""""public"static"RoutedUICommand"ClearCanvas"""""""""{"""""""""""""get;"""""""""""""set;"""""""""}"""""""""Latest changes only [7 files]
"""""""""//"getters"and"setters"from"here"on:"390
PaintCanvasCommands.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows.Input;"
"namespace"Paint"{""""""public"static"class"PaintCanvasCommands"
""""{"""""""""static"PaintCanvasCommands()"""""""""{"""""""""""""ClearCanvas"="new"RoutedUICommand("""""""""""""""""Clear"Canvas",""ClearCanvas",""""""""""""""""typeof(PaintCanvasCommands));"
"""""""""""""UndoCanvas"="new"RoutedUICommand("""""""""""""""""Undo"my"last"stroke",""UndoCanvas",""""""""""""""""typeof(PaintCanvasCommands));""
""""""""""""ChangeToPencil"="new"RoutedUICommand(""""""""""""""""""Pencil",""ChangeToPencil","""""""""""""""""typeof(PaintCanvasCommands));""""""""""""""ChangeToEraser"="new"RoutedUICommand("
"""""""""""""""""Eraser",""ChangeToEraser","""""""""""""""""typeof(PaintCanvasCommands));""""""""""""""ChangeToLine"="new"RoutedUICommand(""""""""""""""""""Line",""ChangeToLine","
""""""""""""""""typeof(PaintCanvasCommands));""""""""""""""ChangeToRect"="new"RoutedUICommand(""""""""""""""""""Rect",""ChangeToRect","""""""""""""""""typeof(PaintCanvasCommands));"
""""""""}"""""""""//"getters"and"setters"from"here"on:""""""""""
""""""""public"static"RoutedUICommand"ClearCanvas"""""""""{"""""""""""""get;"""""""""""""set;"""""""""}"""""""""
390
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
PaintCanvasCommands.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Media;"using"System.Windows.Shapes;""namespace"Paint"{"
""""public"class"PaintCanvas":"System.Windows.Controls.Canvas"""""{"""""""""private"List<List<PaintObject>>"history;"""""""""private"List<PaintObject>"paintObjects;""""""""""private"PaintObject"temporaryObject;"
""""""""private"PaintObject"hoveringObject;"""""""""private"Rectangle"hoveringRender;""""""""""private"bool"currentlyDrawing;""
""""""""public"PaintCanvas()":"base()"""""""""{"""""""""""""history"="new"List<List<PaintObject>>();"""""""""""""paintObjects"="new"List<PaintObject>();""
""""""""""""hoveringRender"="new"Rectangle();"""""""""""""hoveringRender.StrokeThickness"="1;"""""""""""""hoveringRender.Stroke"="Brushes.DarkGray;"""""""""""""hoveringRender.Visibility"="Visibility.Hidden;"""""""""""""this.Children.Add(hoveringRender);"
"""""""""""""currentlyDrawing"="false;"""""""""}""""""""""public"void"Repaint()"
""""""""{"""""""""""""this.Children.Clear();"""""""""""""foreach"(PaintObject"po"in"paintObjects)"""""""""""""{"
""""""""""""""""this.Children.Add(po.getRendering());"""""""""""""}""""""""""""""this.Children.Add(hoveringRender);"""""""""}"
""""""""""
280
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvas.cs [ ]
Latest changes only [7 files]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
using"System;"using"System.Collections.Generic;"using"System.Linq;"using"System.Text;"using"System.Windows;"
using"System.Windows.Media;"using"System.Windows.Shapes;""namespace"Paint"{"
""""public"class"PaintCanvas":"System.Windows.Controls.Canvas"""""{"""""""""private"List<List<PaintObject>>"history;"""""""""private"List<PaintObject>"paintObjects;""""""""""private"PaintObject"temporaryObject;"
""""""""private"PaintObject"hoveringObject;"""""""""private"Rectangle"hoveringRender;""""""""""private"bool"currentlyDrawing;""
""""""""public"PaintCanvas()":"base()"""""""""{"""""""""""""history"="new"List<List<PaintObject>>();"""""""""""""paintObjects"="new"List<PaintObject>();""
""""""""""""hoveringRender"="new"Rectangle();"""""""""""""hoveringRender.StrokeThickness"="1;"""""""""""""hoveringRender.Stroke"="Brushes.DarkGray;"""""""""""""hoveringRender.Visibility"="Visibility.Hidden;"""""""""""""this.Children.Add(hoveringRender);"
"""""""""""""currentlyDrawing"="false;"""""""""}""""""""""public"void"Repaint()"
""""""""{"""""""""""""this.Children.Clear();"""""""""""""foreach"(PaintObject"po"in"paintObjects)"""""""""""""{"
""""""""""""""""this.Children.Add(po.getRendering());"""""""""""""}""""""""""""""this.Children.Add(hoveringRender);"""""""""}"
""""""""""
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
"""hoveringRender.StrokeThickness"="1;"280
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
"""""""""public"void"setHoveringObject(PaintObject"hoveringObject)"""""""""{"""""""""""""this.hoveringObject"="hoveringObject;"""""""""""""if"(hoveringObject"!="null)"
""""""""""""{"""""""""""""""""hoveringRender.Visibility"="Visibility.Visible;"""""""""""""""""hoveringRender.Width"="hoveringRender.Height"="hoveringObject.getThickness()"+"2;"""""""""""""""""double"offset"="hoveringObject.getThickness()"/"2"+"1;"""""""""""""""""hoveringRender.Fill"="new"SolidColorBrush(hoveringObject.getColor());"
""""""""""""""""PaintCanvas.SetLeft(hoveringRender,"hoveringObject.getStartX()"k"offset);"""""""""""""""""PaintCanvas.SetTop(hoveringRender,"hoveringObject.getStartY()"k"offset);"""""""""""""""""PaintCanvas.SetZIndex(hoveringRender,"10);"""""""""""""}"""""""""""""else"{"hoveringRender.Visibility"="Visibility.Hidden;"}"""""""""}"
"""""""""public"void"addPaintObject(PaintObject"newObject)"""""""""{"""""""""""""currentlyDrawing"="false;"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"
""""""""""""paintObjects.Add(newObject);"""""""""""""this.Repaint();"""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"
""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"
}"
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"133"134"135"136"
137"138"139"140"141"
142"143"144"145"
146"147"148"149"150"
151"
142"143"
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
"""""""""public"void"setHoveringObject(PaintObject"hoveringObject)"""""""""{"""""""""""""this.hoveringObject"="hoveringObject;"""""""""""""if"(hoveringObject"!="null)"
""""""""""""{"""""""""""""""""hoveringRender.Visibility"="Visibility.Visible;"""""""""""""""""hoveringRender.Width"="hoveringRender.Height"="hoveringObject.getThickness()"+"2;"""""""""""""""""double"offset"="hoveringObject.getThickness()"/"2"+"1;"""""""""""""""""hoveringRender.Fill"="new"SolidColorBrush(hoveringObject.getColor());"
""""""""""""""""PaintCanvas.SetLeft(hoveringRender,"hoveringObject.getStartX()"k"offset);"""""""""""""""""PaintCanvas.SetTop(hoveringRender,"hoveringObject.getStartY()"k"offset);"""""""""""""""""PaintCanvas.SetZIndex(hoveringRender,"10);"""""""""""""}"""""""""""""else"{"hoveringRender.Visibility"="Visibility.Hidden;"}"""""""""}"
"""""""""public"void"addPaintObject(PaintObject"newObject)"""""""""{"""""""""""""currentlyDrawing"="false;"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"
""""""""""""paintObjects.Add(newObject);"""""""""""""this.Repaint();"""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"
""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"
}"
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"133"134"135"136"
137"138"139"140"141"
142"143"144"145"
146"147"148"149"150"
151"
142"143"
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
"""int"lastItemIndex"="history.Count"–"1;"1400
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
"""""""""public"void"setHoveringObject(PaintObject"hoveringObject)"""""""""{"""""""""""""this.hoveringObject"="hoveringObject;"""""""""""""if"(hoveringObject"!="null)"
""""""""""""{"""""""""""""""""hoveringRender.Visibility"="Visibility.Visible;"""""""""""""""""hoveringRender.Width"="hoveringRender.Height"="hoveringObject.getThickness()"+"2;"""""""""""""""""double"offset"="hoveringObject.getThickness()"/"2"+"1;"""""""""""""""""hoveringRender.Fill"="new"SolidColorBrush(hoveringObject.getColor());"
""""""""""""""""PaintCanvas.SetLeft(hoveringRender,"hoveringObject.getStartX()"k"offset);"""""""""""""""""PaintCanvas.SetTop(hoveringRender,"hoveringObject.getStartY()"k"offset);"""""""""""""""""PaintCanvas.SetZIndex(hoveringRender,"10);"""""""""""""}"""""""""""""else"{"hoveringRender.Visibility"="Visibility.Hidden;"}"""""""""}"
"""""""""public"void"addPaintObject(PaintObject"newObject)"""""""""{"""""""""""""currentlyDrawing"="false;"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"
""""""""""""paintObjects.Add(newObject);"""""""""""""this.Repaint();"""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"
""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"
}"
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"133"134"135"136"
137"138"139"140"141"
142"143"144"145"
146"147"148"149"150"
151""""
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
"""""""""public"void"setHoveringObject(PaintObject"hoveringObject)"""""""""{"""""""""""""this.hoveringObject"="hoveringObject;"""""""""""""if"(hoveringObject"!="null)"
""""""""""""{"""""""""""""""""hoveringRender.Visibility"="Visibility.Visible;"""""""""""""""""hoveringRender.Width"="hoveringRender.Height"="hoveringObject.getThickness()"+"2;"""""""""""""""""double"offset"="hoveringObject.getThickness()"/"2"+"1;"""""""""""""""""hoveringRender.Fill"="new"SolidColorBrush(hoveringObject.getColor());"
""""""""""""""""PaintCanvas.SetLeft(hoveringRender,"hoveringObject.getStartX()"k"offset);"""""""""""""""""PaintCanvas.SetTop(hoveringRender,"hoveringObject.getStartY()"k"offset);"""""""""""""""""PaintCanvas.SetZIndex(hoveringRender,"10);"""""""""""""}"""""""""""""else"{"hoveringRender.Visibility"="Visibility.Hidden;"}"""""""""}"
"""""""""public"void"addPaintObject(PaintObject"newObject)"""""""""{"""""""""""""currentlyDrawing"="false;"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"
""""""""""""paintObjects.Add(newObject);"""""""""""""this.Repaint();"""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"
""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"
}"
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"133"134"135"136"
137"138"139"140"141"
142"143"144"145"
146"147"148"149"150"
151""""
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
click0
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1400
PaintCanvas.cs [ ]
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
x
Latest changes only [7 files]
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
“Cleaned up the code and fixed some of the missing comments (mostly the auto-generated ones).”
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
x
Latest changes only [7 files]
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Refresh();""""""""""}"""""}"}"
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
#9050 Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
Load previous history
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Refresh();""""""""""}"""""}"}"
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
142"143"
1400
paint
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
#9050 Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
Load previous history
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Repaint();""""""""""}"""""}"}"
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Local 2 seconds ago
yourself
#9050 Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
x
"""""""history.RemoveAt(history.Count"–"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
"""history.RemoveAt(lastItemIndex);""""this.Repaint();""
142"143"
...""""...0
"""history.RemoveAt(lastItemIndex);""""""""this.Repaint();""
142"143"
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Repaint();""""""""""}"""""}"}"
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Local 2 seconds ago
yourself
#9050 Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
x
"""""""history.RemoveAt(history.Count"–"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
"""history.RemoveAt(lastItemIndex);""""this.Repaint();""
142"143"
...""""...0
"""history.RemoveAt(lastItemIndex);""""""""this.Repaint();""
142"143"
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Repaint();""""""""""}"""""}"}"
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Local 2 seconds ago
yourself
#9050 Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
x
"""""""history.RemoveAt(history.Count"–"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
"""history.RemoveAt(lastItemIndex);""""this.Repaint();""
142"143"
...""""...0
"""history.RemoveAt(lastItemIndex);""""""""this.Repaint();""
142"143"
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
*PaintCanvas.cs [1]
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Repaint();""""""""""}"""""}"}"
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Local 2 seconds ago
yourself
#9050 Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
x
"""""""history.RemoveAt(history.Count"–"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
"""history.RemoveAt(lastItemIndex);""""this.Repaint();""
142"143"
...""""...0
"""history.RemoveAt(lastItemIndex);""""""""this.Repaint();""
142"143"
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
*PaintCanvas.cs [1]
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Repaint();""""""""""}"""""}"}"
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Local 2 seconds ago
yourself
#9050 Latest update
“Improved readability” 10 hours ago
#9044
“Cleaned up the code…” 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
x
"""""""history.RemoveAt(history.Count"–"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
"""history.RemoveAt(lastItemIndex);""""this.Repaint();""
142"143"
...""""...0
"""history.RemoveAt(lastItemIndex);""""""""this.Repaint();""
142"143"
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
*PaintCanvas.cs [1]
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Repaint();""""""""""}"""""}"}"
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Local 2 seconds ago
yourself
#9050 Latest update
“Improved readability” 10 hours ago
#9044
“Cleaned up the code…” 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
x
"""""""history.RemoveAt(history.Count"–"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
"""history.RemoveAt(lastItemIndex);""""this.Repaint();""
142"143"
...""""...0
"""history.RemoveAt(lastItemIndex);""""""""this.Repaint();""
142"143"
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Repaint();""""""""""}"""""}"}"
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
1400
*PaintCanvas.cs [1]
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Local 2 seconds ago
yourself
#9050 Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
x
"""""""history.RemoveAt(history.Count"–"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
"""history.RemoveAt(lastItemIndex);""""this.Repaint();""
142"143"
...""""...0
"""history.RemoveAt(lastItemIndex);""""""""this.Repaint();""
142"143"
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
" Paint # bin
# obj
# Properties
app.config [ ] App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml
Window1.xaml.cs [ ]
Latest changes only [7 files]
"""""""""public"void"setHoveringObject(PaintObject"hoveringObject)"""""""""{"""""""""""""this.hoveringObject"="hoveringObject;"""""""""""""if"(hoveringObject"!="null)"
""""""""""""{"""""""""""""""""hoveringRender.Visibility"="Visibility.Visible;"""""""""""""""""hoveringRender.Width"="hoveringRender.Height"="hoveringObject.getThickness()"+"2;"""""""""""""""""double"offset"="hoveringObject.getThickness()"/"2"+"1;"""""""""""""""""hoveringRender.Fill"="new"SolidColorBrush(hoveringObject.getColor());"
""""""""""""""""PaintCanvas.SetLeft(hoveringRender,"hoveringObject.getStartX()"k"offset);"""""""""""""""""PaintCanvas.SetTop(hoveringRender,"hoveringObject.getStartY()"k"offset);"""""""""""""""""PaintCanvas.SetZIndex(hoveringRender,"10);"""""""""""""}"""""""""""""else"{"hoveringRender.Visibility"="Visibility.Hidden;"}"""""""""}"
"""""""""public"void"addPaintObject(PaintObject"newObject)"""""""""{"""""""""""""currentlyDrawing"="false;"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"
""""""""""""paintObjects.Add(newObject);"""""""""""""this.Repaint();"""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"
""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Repaint();""""""""""}"""""}"
}"
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"133"134"135"136"
137"138"139"140"141"
142"143"144"145"
146"147"148"149"150"
151""""
1400
PaintCanvas.cs [ ]
142"143"
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
"""""""""public"void"setHoveringObject(PaintObject"hoveringObject)"""""""""{"""""""""""""this.hoveringObject"="hoveringObject;"""""""""""""if"(hoveringObject"!="null)"
""""""""""""{"""""""""""""""""hoveringRender.Visibility"="Visibility.Visible;"""""""""""""""""hoveringRender.Width"="hoveringRender.Height"="hoveringObject.getThickness()"+"2;"""""""""""""""""double"offset"="hoveringObject.getThickness()"/"2"+"1;"""""""""""""""""hoveringRender.Fill"="new"SolidColorBrush(hoveringObject.getColor());"
""""""""""""""""PaintCanvas.SetLeft(hoveringRender,"hoveringObject.getStartX()"k"offset);"""""""""""""""""PaintCanvas.SetTop(hoveringRender,"hoveringObject.getStartY()"k"offset);"""""""""""""""""PaintCanvas.SetZIndex(hoveringRender,"10);"""""""""""""}"""""""""""""else"{"hoveringRender.Visibility"="Visibility.Hidden;"}"""""""""}"
"""""""""public"void"addPaintObject(PaintObject"newObject)"""""""""{"""""""""""""currentlyDrawing"="false;"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"
""""""""""""paintObjects.Add(newObject);"""""""""""""this.Repaint();"""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"
""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"
}"
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"133"134"135"136"
137"138"139"140"141"
142"143"144"145"
146"147"148"149"150"
151""""
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Colored blocks help find changed lines of code
1400142"143"
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
"""""""""public"void"setHoveringObject(PaintObject"hoveringObject)"""""""""{"""""""""""""this.hoveringObject"="hoveringObject;"""""""""""""if"(hoveringObject"!="null)"
""""""""""""{"""""""""""""""""hoveringRender.Visibility"="Visibility.Visible;"""""""""""""""""hoveringRender.Width"="hoveringRender.Height"="hoveringObject.getThickness()"+"2;"""""""""""""""""double"offset"="hoveringObject.getThickness()"/"2"+"1;"""""""""""""""""hoveringRender.Fill"="new"SolidColorBrush(hoveringObject.getColor());"
""""""""""""""""PaintCanvas.SetLeft(hoveringRender,"hoveringObject.getStartX()"k"offset);"""""""""""""""""PaintCanvas.SetTop(hoveringRender,"hoveringObject.getStartY()"k"offset);"""""""""""""""""PaintCanvas.SetZIndex(hoveringRender,"10);"""""""""""""}"""""""""""""else"{"hoveringRender.Visibility"="Visibility.Hidden;"}"""""""""}"
"""""""""public"void"addPaintObject(PaintObject"newObject)"""""""""{"""""""""""""currentlyDrawing"="false;"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"
""""""""""""paintObjects.Add(newObject);"""""""""""""this.Repaint();"""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"
""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"
}"
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"133"134"135"136"
137"138"139"140"141"
142"143"144"145"
146"147"148"149"150"
151""""
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Hovering over any colored block reveals the latest changes
1400"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Historical details are accessible by clicking on any colored block
#9050 Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
Load previous history
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Refresh();""""""""""}"""""}"}"
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
142"143"
1400
paint
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Code is editable while seeing the historical details
#9050 Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
Load previous history
x
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
PaintCanvas.cs [ ]
h"ps://online.ide.com0 IDE0 r!
James0Green0000/0000Paint0
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint # bin
# obj
# Properties
app.config App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList… LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
&&
*PaintCanvas.cs [1]
""""""""""""""""""}""""""""""public"void"clear()"
""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}"
"""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"
""""""""""""this.Repaint();""""""""""}"""""}"}"
129"130"131"132"133"
134"135"136"137"138"
139"140"141"142"143"144"
145"146"147"148"149"
150"151""""
1400
" Paint app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ] PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
Latest changes only [7 files]
Local 2 seconds ago
yourself
#9050 Latest update
“Improved readability” 10 hours ago
#9044
“Cleaned up the code…” 12 hours ago
#8227 Previous update
“Added undo method” 0 4 weeks ago
yourself
x
"""""""history.RemoveAt(history.Count"–"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...0
...""""...0
...""""...0
"""history.RemoveAt(lastItemIndex);""""this.Repaint();""
142"143"
...""""...0
"""history.RemoveAt(lastItemIndex);""""""""this.Repaint();""
142"143"
Contacting the author of a particular change is easy
PaintCanvas.cs [ ]
h"p://online.visualstudio.com4 Visual4Studio4 r!
James4Green4444/4444Paint4
EXPLORE OPEN SEARCH BUILD TEST CHANGES CONSOLE
" Paint
# bin
# obj
# Properties
app.config
App.xaml
App.xaml.cs
ColorPanel.xaml
ColorPanel.xaml.cs
EraserPaint.cs
IPaintObjectConstructorList
…
LinePaint.cs
PaintCanvas.cs
PaintCanvasCommands.cs
PaintObject.cs
PaintObjectConstructor.cs
PencilPaint.cs
RectPaint.cs
Window1.xaml
Window1.xaml.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"
129"130"131"132"133"134"135"136"137"138"139"140"141"142"143"144"145"146"147"148"149"150"151"
"""#9050
Latest update
“Improved readability and consistency.” 10 hours ago
#9044
“Cleaned up the code and fixed some [...] 12 hours ago
#8227 Previous update
“Added undo method” 4 4 weeks ago
yourself
Load previous history
""""""""""""""""""}""""""""""public"void"clear()"""""""""{"""""""""""""history.Add(new"List<PaintObject>(paintObjects));"""""""""""""paintObjects.Clear();"""""""""""""this.Repaint();"""""""""}""""""""""public"void"undo()"""""""""{"""""""""""""int"lastItemIndex"="history.Count"–"1;"""""""""""""paintObjects"="history.Last<List<PaintObject>>();"""""""""""""history.RemoveAt(lastItemIndex);"""""""""""""this.Refresh();""""""""""}"""""}"}"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
1404
PaintCanvas.cs [ ]
"""""""history.RemoveAt(history.Count"k"1);""""this.Refresh();""
141"142"
"""history.RemoveAt(lastItemIndex);""""this.Refresh();""
142"143"
"""history.RemoveAt(history.Count"k"1);""""this.Repaint();""
141"142"
...""""...4
...""""...4
...""""...4
" Paint
app.config [ ]
LinePaint.cs [ ]
PaintCanvas.cs [ ]
PaintCanvasCommands.cs [ ]
PencilPaint.cs [ ]
RectPaint.cs [ ]
Window1.xaml.cs [ ]
PaintCanvas.cs [ ]
Latest changes only [7 files] Designing and evaluating Bellevue: A screenshot
Top Related