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)
|