1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
   | package ohos_app_cangjie_entry
  internal import ohos.base.LengthProp internal import ohos.component.Column internal import ohos.component.Row internal import ohos.component.Button internal import ohos.component.Text internal import ohos.component.CustomView internal import ohos.component.CJEntry internal import ohos.component.loadNativeView internal import ohos.state_manage.SubscriberManager internal import ohos.state_manage.ObservedProperty internal import ohos.state_manage.LocalStorage import ohos.state_macro_manage.Entry import ohos.state_macro_manage.Component import ohos.state_macro_manage.State import ohos.state_macro_manage.r import std.random.Random
 
  /* 20.1 */class EntryView <: CustomView {     let messages =["Hello World", "你好,世界!", "Hei maailma", "Hola Mundo", "Привет мир", "Hallo Welt"]     private var stateVarDecl_message_: ObservedProperty < String >= ObservedProperty < String >("stateVarDecl_message_", messages[0])     private mut prop message: String {         get() {             return this.stateVarDecl_message_.get()         }         set(v) {             this.stateVarDecl_message_.set(v)         }     }     public func build() {         this.observeComponentCreation({ elmtId, isInitialRender => Row { this.observeComponentCreation({ elmtId, isInitialRender => Column { this.observeComponentCreation({ elmtId, isInitialRender => Text(message).fontSize(40).height(80) })         this.observeComponentCreation({ elmtId, isInitialRender => Button("Hello").onClick { evt => message = messages[Random().nextInt64(messages.size)] }.fontSize(40).height(80).margin(top: 100) }) }.width(100.percent) }) }.height(100.percent) })         ()     }     public init(parent: Option < CustomView >, message!: Option < ObservedProperty < String >>= None, localStorage!: Option < LocalStorage >= None) {         super(parent, localStorage)         match(message) {             case Some(v) => this.stateVarDecl_message_ = ObservedProperty < String >("stateVarDecl_message_", v.get())             case _ =>()         }         this.stateVarDecl_message_.subscribeEx(this)         SubscriberManager.getInstance().add(this)         registerSelf()         parent?.addChildById(id(), this)     }     public override func aboutToBeDeleted() {         this.stateVarDecl_message_.unsubscribeEx(this)         SubscriberManager.getInstance().delete(this)         this.aboutToBeDeletedInternal()     }     func updateWithValueParams(message!: Option < String >= Option < String >.None): Unit {         match(message) {             case Some(v) => this.message = v             case _ =>()         }     }     public func rerender() {         this.updateDirtyElements()     }     public func purgeVariableDependenciesOnElmtId(rmElmtId: Int64) {         this.stateVarDecl_message_.purgeDependencyOnElmtId(rmElmtId)     }     public func forceRerender(deep!: Bool = false) {         this.forceCompleteRerender(deep)     } }
  public func appEntry_0(): Bool {     let view = EntryView(Option < CustomView >.None)     loadNativeView(view) }
  let a_p_1 = CJEntry.getInstance().registerEntry("EntryView", appEntry_0)
 
 
   |