123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- //
- // WCCompWindowController.swift
- // PDF Reader Pro
- //
- // Created by Niehaoyu on 2024/8/22.
- //
- import Cocoa
- import KMComponentLibrary
- class WCCompWindowController: NSWindowController {
-
- @IBOutlet weak var tableView: NSTableView!
- @IBOutlet weak var rigntBox: NSBox!
- @IBOutlet weak var appjsonLabel: NSTextField!
- @IBOutlet weak var brandJsonLabel: NSTextField!
- @IBOutlet weak var resetButton: NSButton!
-
-
- var buttonVC: ButtonDemoVC = ButtonDemoVC()
- var dividerVC: DividerDemoVC = DividerDemoVC()
- var dropdownVC: DropdownDemoVC = DropdownDemoVC()
- var navigationVC: NavigationDemoVC = NavigationDemoVC()
- var tabbarVC: TabbarDemoVC = TabbarDemoVC()
- var sidebarVC: SidebarDemoVC = SidebarDemoVC()
-
- var inputVC: InputDemoVC = InputDemoVC()
- var inputNumberVC: InputNumberVC = InputNumberVC()
-
- var checkBoxVC: CheckBoxVC = CheckBoxVC()
- var sliderVC: SliderVC = SliderVC()
- var selectVC: SelectVC = SelectVC()
- var controllerVC: ControllerVC = ControllerVC()
- var progressVC: ProgressVC = ProgressVC()
- var segmentedVC: SegmentedVC = SegmentedVC()
- var tooltipVC: TooltipVC = TooltipVC()
- var tabsVC: TabsVC = TabsVC()
- var messageVC: MessageVC = MessageVC()
- var alertVC: AlertControllerVC = AlertControllerVC()
- var emptyVC: EmptyVC = EmptyVC()
- var notiVC: NotiVC = NotiVC()
- var cardVC: CardVC = CardVC()
- var paginationVC: PaginationVC = PaginationVC()
- var listVC: ListVC = ListVC()
- var modalVC: ModalVC = ModalVC()
- var treeVC: TreeVC = TreeVC()
-
- let tools = ["Button", "Divider", "Dropdown", "Navigation", "Input", "InputNumber", "CheckBox", "Radio", "Slider", "Select", "Controller", "Progress", "Segmented", "Tooltip", "Tabs", "Message", "Alert & Tag", "Empty", "notificationVC", "Card", "Pagination", "Sidebar", "List & FloatingToolbar", "Modal", "Tree"]
-
-
- override func windowDidLoad() {
- super.windowDidLoad()
- // Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
- ComponentLibrary.shared.parserExcel(withPath: "")
-
- rigntBox.contentView = buttonVC.view
-
- self.reloadData()
- }
-
- func reloadData() {
- var isEnable = true
- if let appjsonURL = ComponentLibrary.shared.appJsonURL {
- let path = appjsonURL.path
- self.appjsonLabel.stringValue = path
- } else {
- self.appjsonLabel.stringValue = "-"
- isEnable = false
- }
-
- if let brandJsonURL = ComponentLibrary.shared.brandJsonURL {
- let path = brandJsonURL.path
- self.brandJsonLabel.stringValue = path
- } else {
- self.brandJsonLabel.stringValue = "-"
- isEnable = false
- }
-
- self.resetButton.isEnabled = isEnable
-
- }
-
- @IBAction func chooseAPPJson(_ sender: Any) {
- let openPanel = NSOpenPanel()
- openPanel.canChooseDirectories = true
- openPanel.canChooseFiles = true
- openPanel.allowsMultipleSelection = false;
- openPanel.allowedFileTypes = ["json"]
- openPanel.beginSheetModal(for: self.window!) { result in
- if result == .OK {
- let fileURL = openPanel.urls.first
-
- ComponentLibrary.shared.appJsonURL = fileURL
-
- }
- self.reloadData()
- }
- }
-
- @IBAction func changeBrandJson(_ sender: Any) {
-
- let openPanel = NSOpenPanel()
- openPanel.canChooseDirectories = true
- openPanel.canChooseFiles = true
- openPanel.allowsMultipleSelection = false;
- openPanel.allowedFileTypes = ["json"]
- openPanel.beginSheetModal(for: self.window!) { result in
- if result == .OK {
- let fileURL = openPanel.urls.first
-
- ComponentLibrary.shared.brandJsonURL = fileURL
-
- }
- self.reloadData()
- }
-
- }
-
- @IBAction func resetAction(_ sender: Any) {
- ComponentLibrary.shared.parserExcel(withPath: "")
- }
-
-
- }
- extension WCCompWindowController: NSTableViewDataSource, NSTableViewDelegate {
-
- // MARK: NSTableViewDelegate
-
- func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
- let cellIdentifier = NSUserInterfaceItemIdentifier("TableViewCell")
- guard let cell = tableView.makeView(withIdentifier: cellIdentifier, owner: self) as? NSTableCellView else {
- return nil
- }
- cell.textField?.stringValue = tools[row]
- return cell
- }
- func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat {
- return 50.0
- }
-
- func tableViewSelectionDidChange(_ notification: Notification) {
- let row = self.tableView.selectedRow
- if row == -1 { return }
-
- if tools[row] == "Button" {
- rigntBox.contentView = buttonVC.view
- } else if tools[row] == "Divider" {
- rigntBox.contentView = dividerVC.view
- } else if tools[row] == "Dropdown" {
- rigntBox.contentView = dropdownVC.view
- } else if tools[row] == "Navigation" {
- rigntBox.contentView = navigationVC.view
- } else if tools[row] == "Tabbar" {
- rigntBox.contentView = tabbarVC.view
- } else if tools[row] == "Sidebar" {
- rigntBox.contentView = sidebarVC.view
- } else if tools[row] == "Input" {
- rigntBox.contentView = inputVC.view
- } else if tools[row] == "InputNumber" {
- rigntBox.contentView = inputNumberVC.view
- } else if tools[row] == "CheckBox" {
- rigntBox.contentView = checkBoxVC.view
- checkBoxVC.typeBox.selectItem(at: 0)
- checkBoxVC.reloadData()
- } else if tools[row] == "Radio" {
- rigntBox.contentView = checkBoxVC.view
- checkBoxVC.typeBox.selectItem(at: 1)
- checkBoxVC.reloadData()
- } else if tools[row] == "Slider" {
- rigntBox.contentView = sliderVC.view
- } else if tools[row] == "Select" {
- rigntBox.contentView = selectVC.view
- } else if tools[row] == "Controller" {
- rigntBox.contentView = controllerVC.view
- } else if tools[row] == "Progress" {
- rigntBox.contentView = progressVC.view
- } else if tools[row] == "Segmented" {
- rigntBox.contentView = segmentedVC.view
- } else if tools[row] == "Tooltip" {
- rigntBox.contentView = tooltipVC.view
- } else if tools[row] == "Tabs" {
- rigntBox.contentView = tabsVC.view
- } else if tools[row] == "Message" {
- rigntBox.contentView = messageVC.view
- } else if tools[row] == "Alert & Tag" {
- rigntBox.contentView = alertVC.view
- } else if tools[row] == "Empty" {
- rigntBox.contentView = emptyVC.view
- } else if tools[row] == "notificationVC" {
- rigntBox.contentView = notiVC.view
- } else if tools[row] == "Card" {
- rigntBox.contentView = cardVC.view
- } else if tools[row] == "Pagination" {
- rigntBox.contentView = paginationVC.view
- } else if tools[row] == "List & FloatingToolbar" {
- rigntBox.contentView = listVC.view
- } else if tools[row] == "Modal" {
- rigntBox.contentView = modalVC.view
- } else if tools[row] == "Tree" {
- rigntBox.contentView = treeVC.view
- }
-
-
-
- }
-
- // MARK: NSTableViewDataSource
-
- func numberOfRows(in tableView: NSTableView) -> Int {
- return tools.count
- }
- }
|