|
@@ -72,6 +72,9 @@ class KMBatesPropertyController: NSViewController {
|
|
|
var groupView: ComponentGroup!
|
|
|
|
|
|
private var familyNames = CPDFFont.familyNames
|
|
|
+ private var positionSelRow: Int = 0
|
|
|
+ private var positionSelColumn: Int = 0
|
|
|
+
|
|
|
|
|
|
var totalPDFCount: Int = 1
|
|
|
var batesModel: KMBatesModel = KMBatesModel()
|
|
@@ -209,6 +212,12 @@ class KMBatesPropertyController: NSViewController {
|
|
|
layoutInsertButton.properties = ComponentButtonProperty(type: .text_gray, size: .xxs, onlyIcon: true, icon: NSImage(named: "watermark_template_add"), keepPressState: false)
|
|
|
layoutInsertButton.setTarget(self, action: #selector(componentButtonClicked(_:)))
|
|
|
|
|
|
+ layoutPosition.properties = ComponentCPositionProperty(rowCount: 2, columnCount: 3, dash: true)
|
|
|
+ layoutPosition.delegate = self
|
|
|
+
|
|
|
+ layoutTextarea.properties = ComponentTextareaProperty(totalCount: -1)
|
|
|
+ layoutTextarea.delegate = self
|
|
|
+
|
|
|
//Save
|
|
|
saveTemplateBGView.wantsLayer = true
|
|
|
saveTemplateBGView.layer?.backgroundColor = ComponentLibrary.shared.getComponentColorFromKey("colorBg/layout-middle").cgColor
|
|
@@ -278,16 +287,32 @@ class KMBatesPropertyController: NSViewController {
|
|
|
|
|
|
}
|
|
|
|
|
|
- //MARK: - Action
|
|
|
+ func updateTextAreaText() {
|
|
|
+ if positionSelRow == 0 && positionSelColumn == 0 {
|
|
|
+ //左下角
|
|
|
+ layoutTextarea.properties.text = batesModel.bottomLeftString
|
|
|
+ } else if positionSelRow == 0 && positionSelColumn == 1 {
|
|
|
+ layoutTextarea.properties.text = batesModel.bottomCenterString
|
|
|
+ } else if positionSelRow == 0 && positionSelColumn == 2 {
|
|
|
+ layoutTextarea.properties.text = batesModel.bottomRightString
|
|
|
+ } else if positionSelRow == 1 && positionSelColumn == 0 {
|
|
|
+ layoutTextarea.properties.text = batesModel.topLeftString
|
|
|
+ } else if positionSelRow == 1 && positionSelColumn == 1 {
|
|
|
+ layoutTextarea.properties.text = batesModel.topCenterString
|
|
|
+ } else if positionSelRow == 1 && positionSelColumn == 2 {
|
|
|
+ layoutTextarea.properties.text = batesModel.topRightString
|
|
|
+ }
|
|
|
+ layoutTextarea.reloadData()
|
|
|
+ }
|
|
|
|
|
|
+ //MARK: - Action
|
|
|
@objc func componentButtonClicked(_ sender: ComponentButton) {
|
|
|
if sender == templateButton {
|
|
|
delegate?.batesPropertyControllerDidChangetoTemplate?(self)
|
|
|
|
|
|
} else if sender == layoutInsertButton {
|
|
|
var menuItemArr: [ComponentMenuitemProperty] = []
|
|
|
- var items: [(String, String)] = [("Insert Page Number", "InsertPageNumberKey"),
|
|
|
- ("Insert Date", "InsertDateKey")]
|
|
|
+ let items: [(String, String)] = [("Insert Bates", "InsertBatesKey")]
|
|
|
|
|
|
for (i, value) in items {
|
|
|
let properties_Menuitem: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false,
|
|
@@ -303,7 +328,7 @@ class KMBatesPropertyController: NSViewController {
|
|
|
groupView = ComponentGroup.createFromNib(in: ComponentLibrary.shared.componentBundle())
|
|
|
}
|
|
|
groupView.groupDelegate = self
|
|
|
- groupView?.frame = CGRectMake(0, 0, 160, 80)
|
|
|
+ groupView?.frame = CGRectMake(0, 0, 160, 44)
|
|
|
groupView.updateGroupInfo(menuItemArr)
|
|
|
if let point: CGPoint = sender.superview?.convert(sender.frame.origin, to: self.view.window?.contentView) {
|
|
|
groupView.showWithPoint(CGPoint(x: point.x, y: point.y - CGRectGetHeight(groupView.frame)-4), relativeTo: self.view)
|
|
@@ -393,6 +418,86 @@ extension KMBatesPropertyController: ComponentSelectDelegate {
|
|
|
//MARK: - ComponentGroupDelegate
|
|
|
extension KMBatesPropertyController: ComponentGroupDelegate {
|
|
|
func componentGroupDidSelect(group: ComponentGroup?, menuItemProperty: ComponentMenuitemProperty?) {
|
|
|
+ if menuItemProperty?.identifier == "InsertBatesKey" {
|
|
|
+ guard let digitsText = digitsInputNumber.properties.text else {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ guard let startPageText = startPageSelect.properties.text else {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ batesModel.digits = Int(digitsText) ?? 1
|
|
|
+
|
|
|
+ var tString = "<<#\((digitsText))#\(startPageText)"
|
|
|
+ if !self.prefixInput.properties.text.isEmpty {
|
|
|
+ tString += "#\(self.prefixInput.properties.text)"
|
|
|
+ } else if self.prefixInput.properties.text.isEmpty && !self.suffixInput.properties.text.isEmpty {
|
|
|
+ tString += "#"
|
|
|
+ }
|
|
|
+ if !self.suffixInput.properties.text.isEmpty {
|
|
|
+ tString += "#\(self.suffixInput.properties.text)"
|
|
|
+ }
|
|
|
+ tString += ">>"
|
|
|
+
|
|
|
+ if positionSelRow == 0 && positionSelColumn == 0 {
|
|
|
+ //左下角
|
|
|
+ batesModel.bottomLeftString = batesModel.bottomLeftString + tString
|
|
|
+ } else if positionSelRow == 0 && positionSelColumn == 1 {
|
|
|
+ batesModel.bottomCenterString = batesModel.bottomCenterString + tString
|
|
|
+ } else if positionSelRow == 0 && positionSelColumn == 2 {
|
|
|
+ batesModel.bottomRightString = batesModel.bottomRightString + tString
|
|
|
+ } else if positionSelRow == 1 && positionSelColumn == 0 {
|
|
|
+ batesModel.topLeftString = batesModel.topLeftString + tString
|
|
|
+ } else if positionSelRow == 1 && positionSelColumn == 1 {
|
|
|
+ batesModel.topCenterString = batesModel.topCenterString + tString
|
|
|
+ } else if positionSelRow == 1 && positionSelColumn == 2 {
|
|
|
+ batesModel.topRightString = batesModel.topRightString + tString
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ updateTextAreaText()
|
|
|
+
|
|
|
+ delegate?.batesPropertyControllerDidUpdate?(self)
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//MARK: - ComponentCPositionDelegate
|
|
|
+extension KMBatesPropertyController: ComponentCPositionDelegate {
|
|
|
+ func componentCPositionDidChoose(_ view: NSView, _ row: Int, _ column: Int) {
|
|
|
+ if view == layoutPosition {
|
|
|
+ view.window?.makeFirstResponder(nil)
|
|
|
+
|
|
|
+ positionSelRow = row
|
|
|
+ positionSelColumn = column
|
|
|
+
|
|
|
+ updateTextAreaText()
|
|
|
+
|
|
|
+ delegate?.batesPropertyControllerDidUpdate?(self)
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//MARK: - ComponentTextareaDelegate
|
|
|
+extension KMBatesPropertyController: ComponentTextareaDelegate {
|
|
|
+ func componentTextareaTextDidChange(_ view: ComponentTextarea) {
|
|
|
+ if positionSelRow == 0 && positionSelColumn == 0 {
|
|
|
+ //左下角
|
|
|
+ batesModel.bottomLeftString = layoutTextarea.properties.text
|
|
|
+ } else if positionSelRow == 0 && positionSelColumn == 1 {
|
|
|
+ batesModel.bottomCenterString = layoutTextarea.properties.text
|
|
|
+ } else if positionSelRow == 0 && positionSelColumn == 2 {
|
|
|
+ batesModel.bottomRightString = layoutTextarea.properties.text
|
|
|
+ } else if positionSelRow == 1 && positionSelColumn == 0 {
|
|
|
+ batesModel.topLeftString = layoutTextarea.properties.text
|
|
|
+ } else if positionSelRow == 1 && positionSelColumn == 1 {
|
|
|
+ batesModel.topCenterString = layoutTextarea.properties.text
|
|
|
+ } else if positionSelRow == 1 && positionSelColumn == 2 {
|
|
|
+ batesModel.topRightString = layoutTextarea.properties.text
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ func componentTextareaTextDidEndEditing(_ view: ComponentTextarea) {
|
|
|
|
|
|
}
|
|
|
}
|