Uploaded image for project: 'ZK'
  1. ZK
  2. ZK-5158

Client MVVM restriction check mechanism

XMLWordPrintable

    • Icon: New Feature New Feature
    • Resolution: Done
    • Icon: Normal Normal
    • 10.0.0
    • None
    • None
    • Security Level: Jimmy

      User Story

      As a ZK MVVM user, I want to know how to solve the upgrade issue when I use ZK 10 client MVVM

      Case1: @WireVariable is MVC
      zephyr-master/zephyr-test/src/main/webapp/mvvm/book/advance/wirevariables/WireFromImplicitObject.zul

      Case2: drag not work (Shall find another way to do the drag)
      zephyr-master/zephyr-test/src/main/webapp/mvvm/book/basic/component-switch.zul

      Case3: @ContextParam(ContextType.COMPONENT), it is not supported
      zephyr-master/zephyr-test/src/main/webapp/mvvm/book/basic/contextparam.zul
      @ContextParam(ContextType.BINDER) BinderImpl binder
      test2/B95-ZK-4722.zul
      Case4: Move component
      B80-ZK-2917.zul
      B80-ZK-3211.zul
      B96-ZK-4778.zul
      F85-ZK-1148.zul

      Case5: use BindingParam to control component
      B80-ZK-2983.zul
      B85-ZK-3898.zul
      B86-ZK-4166.zul
      B86-ZK-4255.zul

      Case6: @SelectorParam 

      Note: should support if the selector can locate to server side component.
      B95-ZK-4722.zul (Should work, div is a ViewModel owner)

      B80-ZK-2919.zul (Should work, combobox is a Server side component.

      Case7: @Listen
      F80-ZK-2582.zul

      Case8: @Wire
      F80-ZK-2708.zul
      B01887DetachAttach.zul
      B02022ComponentRemoval.zul
      F00638.zul
      F01231AfterComposeVM.zul

      Case9: Call API in binder
      B60-ZK-1139.zul
      B01139LoadInit.zul

      Case10: Create Component
      B85-ZK-3831.zul
      B01547NPEWhenCreateNonPage.zul
      B01640CommandSend2WrongViewModel.zul

      Case11: Type issue
      B01059DifferentType.zul
      (misleading ZUL description, the B01059DifferentTypeTest said that it should throw exception)

      Case12: ListModel case doesn't support EL ${model} with ZScript variable for @load() binding to bind value at client.
      B01060DirectModel.zul
      B90-ZK-4227.zul

      Case13: old mvvm (AnnotateDataBinderInit)
      B02055Loop.zul

      Case14: template outside view model
      B90-ZK-4376.zul
      B90-ZK-4556-outer-template.zul

      Case15: not support for client mvvm for binding paginal
      B80-ZK-3208-grid.zul (not support for client mvvm for binding paginal)
      B80-ZK-3208-list.zul (not support for client mvvm for binding paginal)
      B80-ZK-3208-tree.zul (not support for client mvvm for binding paginal)

      B85-ZK-3749.zul (not support for client mvvm for binding paginal)

      Case16: set Component property
      zktest/bind/issue/B00604.zul

      Case17: converter to case Object type issue

      zephyr-test/mvvm/issue/F00743_1.zul

      public Object coerceToUi(Object val, Component component, BindContext ctx) {
         return sort((Set)val); <-- no way to detect the Set type here, we can only support Set in method parameter type, but still Set<Item> cannot support as well.
      } 

      Case18: itemRenderer="@load(vm.itemRenderer)" (suggested to use <template>)

      test2/B85-ZK-3733.zul
      test2/B80-ZK-1987-1.zul
      F86-ZK-3963.zul

      case19: Cannot access selectedItems from Event (onXXX="..." should be @command)

      onSelect="Clients.log(event.selectedItems.iterator().next().value)"

      test2/B96-ZK-4921.zul

      mvvm/issue/B00762Listbox1.zul

      case20: sorting feature - https://tracker.zkoss.org/browse/ZK-5318
      Unable to support sorting function at Server side, so we decide not to support this at Client MVVM. 
      test2/F96-ZK-4595.zul
       case21: ProxyTargetHandler - https://tracker.zkoss.org/browse/ZK-5322

      Unable to support ProxyTargetHandler for Client MVVM

      case22: Unable to support getSaveFormFieldNames() from a binder passed through @ContextParam(ContextType.BINDER)
      -> binder.getSaveFormFieldNames(myform);
      in B95_ZK_4685VM.java
       

      case 23: ZK-3952
      public void scrollToIndex(int index) {ListModel<Object> model = getModel();
      B00762Combobox1.zul, try to access model in component
      F00743_1.zul
      F00743_2.zul
      getModel shouldn't be called in ClientMVVM.

      case 24: access component API
      B70-ZK-2636.zul

      B86-ZK-4295.zul
      B85-ZK-3932.zul
      case 25: render client object in include component
      ZK-5405

      case 26: cannot support FormLegacy in ViewModel.

      test2/F95-ZK-4501.zul

      case 27: setSelectionControl on ListModel - ZK-5407

      case 28: getter method should be pure getter
      ex. https://github.com/zkoss/zk/blob/6db8ccad0efc7345594a5a96d9c0f0cb9054e352/zephyr-test/src/main/java/org/zkoss/zktest/test2/B65_ZK_2409VM.java#L27-L33

      case 29: Custom Binder by using AnnotateBinder

      mvvm/issue/B00632.zul

      case 30: Cannot support viewModel="@id('vm') @init(module)" from outside this page scope. (see ZK-5405)

      zephyr-test/mvvm/book/basic/modulize.zul with modulize-moudle1.zul

      case 31: Not support Fragment component for Client MVVM (see ZK-5340)

      Acceptance Criteria

      System log when server startup and the check should be pluggable

      Details

            rebeccalai rebeccalai
            DevChu DevChu
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: