Skip to content

Commit d23f515

Browse files
committed
Colors can now be removed.
1 parent 3cc314e commit d23f515

File tree

2 files changed

+125
-61
lines changed

2 files changed

+125
-61
lines changed

ColorSet/Classes/MainWindowController.swift

Lines changed: 46 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,17 @@
2424

2525
import Cocoa
2626

27-
class MainWindowController: NSWindowController, NSTableViewDelegate, NSTableViewDataSource, NSTextFieldDelegate
27+
class MainWindowController: NSWindowController, NSTableViewDelegate, NSTableViewDataSource, NSTextFieldDelegate, NSMenuDelegate
2828
{
2929
@objc private dynamic var selectedColor: ColorItem?
3030
@objc private dynamic var hasVariant = false
31-
public var url: URL?
32-
public private( set ) var colors: [ ColorItem ] = []
33-
private var observations: [ NSKeyValueObservation ] = []
34-
@IBOutlet private var arrayController: NSArrayController?
31+
32+
public var url: URL?
33+
public private( set ) var colors: [ ColorItem ] = []
34+
private var observations: [ NSKeyValueObservation ] = []
35+
36+
@IBOutlet public var tableView: NSTableView?
37+
@IBOutlet public var arrayController: NSArrayController?
3538

3639
convenience init( colors: [ ColorItem ] )
3740
{
@@ -47,21 +50,28 @@ class MainWindowController: NSWindowController, NSTableViewDelegate, NSTableView
4750

4851
override func windowDidLoad()
4952
{
50-
guard let controller = self.arrayController else
53+
guard let colorView = self.window?.contentView?.subviewWithIdentifier( "Color" ) as? ColorView else
5154
{
5255
return
5356
}
5457

55-
guard let colorView = self.window?.contentView?.subviewWithIdentifier( "Color" ) as? ColorView else
58+
guard let variantView = self.window?.contentView?.subviewWithIdentifier( "Variant" ) as? ColorView else
5659
{
5760
return
5861
}
5962

60-
guard let variantView = self.window?.contentView?.subviewWithIdentifier( "Variant" ) as? ColorView else
63+
guard let controller = self.arrayController else
6164
{
6265
return
6366
}
6467

68+
guard let tableView = self.window?.contentView?.subviewWithIdentifier( "TableView" ) as? NSTableView else
69+
{
70+
return
71+
}
72+
73+
self.tableView = tableView
74+
6575
for color in self.colors
6676
{
6777
controller.addObject( color )
@@ -213,6 +223,19 @@ class MainWindowController: NSWindowController, NSTableViewDelegate, NSTableView
213223
self.arrayController?.addObject( color )
214224
}
215225

226+
@IBAction public func removeColor( _ sender: Any? )
227+
{
228+
guard let tableView = self.tableView else
229+
{
230+
return
231+
}
232+
233+
if( tableView.clickedRow >= 0 )
234+
{
235+
self.arrayController?.remove( atArrangedObjectIndex: tableView.clickedRow )
236+
}
237+
}
238+
216239
func tableView( _ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int ) -> NSView?
217240
{
218241
guard let view = tableView.makeView( withIdentifier: NSUserInterfaceItemIdentifier( "Row" ), owner: self ) as? NSTableCellView else
@@ -286,4 +309,19 @@ class MainWindowController: NSWindowController, NSTableViewDelegate, NSTableView
286309

287310
return true
288311
}
312+
313+
override func validateMenuItem( _ item: NSMenuItem ) -> Bool
314+
{
315+
guard let tableView = self.tableView else
316+
{
317+
return false
318+
}
319+
320+
if( item.action == #selector( removeColor( _ : ) ) )
321+
{
322+
return tableView.clickedRow >= 0
323+
}
324+
325+
return true
326+
}
289327
}

0 commit comments

Comments
 (0)