github.com/erda-project/erda-infra@v1.0.9/providers/component-protocol/components/list/impl/default.go (about) 1 // Copyright (c) 2021 Terminus, Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package impl 16 17 import ( 18 "github.com/erda-project/erda-infra/providers/component-protocol/components/defaults" 19 "github.com/erda-project/erda-infra/providers/component-protocol/components/list" 20 "github.com/erda-project/erda-infra/providers/component-protocol/cptype" 21 "github.com/erda-project/erda-infra/providers/component-protocol/utils/cputil" 22 ) 23 24 // DefaultList . 25 type DefaultList struct { 26 defaults.DefaultImpl 27 Impl list.IList 28 29 *StdStructuredPtr 30 } 31 32 // StdStructuredPtr . 33 type StdStructuredPtr struct { 34 StdInParamsPtr *cptype.ExtraMap 35 StdDataPtr *list.Data 36 StdStatePtr *cptype.ExtraMap 37 } 38 39 // DataPtr . 40 func (s *StdStructuredPtr) DataPtr() interface{} { return s.StdDataPtr } 41 42 // StatePtr . 43 func (s *StdStructuredPtr) StatePtr() interface{} { return s.StdStatePtr } 44 45 // InParamsPtr . 46 func (s *StdStructuredPtr) InParamsPtr() interface{} { return s.StdInParamsPtr } 47 48 // RegisterCompStdOps . 49 func (d *DefaultList) RegisterCompStdOps() (opFuncs map[cptype.OperationKey]cptype.OperationFunc) { 50 return map[cptype.OperationKey]cptype.OperationFunc{ 51 // list level 52 list.OpChangePage{}.OpKey(): func(sdk *cptype.SDK) cptype.IStdStructuredPtr { 53 return d.Impl.RegisterChangePage(*cputil.MustObjJSONTransfer(sdk.Event.OperationData, &list.OpChangePage{}).(*list.OpChangePage))(sdk) 54 }, 55 56 // item level 57 list.OpItemStar{}.OpKey(): func(sdk *cptype.SDK) cptype.IStdStructuredPtr { 58 return d.Impl.RegisterItemStarOp(*cputil.MustObjJSONTransfer(sdk.Event.OperationData, &list.OpItemStar{}).(*list.OpItemStar))(sdk) 59 }, 60 list.OpItemClickGoto{}.OpKey(): func(sdk *cptype.SDK) cptype.IStdStructuredPtr { 61 return d.Impl.RegisterItemClickGotoOp(*cputil.MustObjJSONTransfer(sdk.Event.OperationData, &list.OpItemClickGoto{}).(*list.OpItemClickGoto))(sdk) 62 }, 63 list.OpItemClick{}.OpKey(): func(sdk *cptype.SDK) cptype.IStdStructuredPtr { 64 return d.Impl.RegisterItemClickOp(*cputil.MustObjJSONTransfer(sdk.Event.OperationData, &list.OpItemClick{}).(*list.OpItemClick))(sdk) 65 }, 66 list.OpBatchRowsHandle{}.OpKey(): func(sdk *cptype.SDK) cptype.IStdStructuredPtr { 67 return d.Impl.RegisterBatchOp(*cputil.MustObjJSONTransfer(sdk.Event.OperationData, &list.OpBatchRowsHandle{}).(*list.OpBatchRowsHandle))(sdk) 68 }, 69 } 70 } 71 72 // RegisterCompNonStdOps . 73 func (d *DefaultList) RegisterCompNonStdOps() (opFuncs map[cptype.OperationKey]cptype.OperationFunc) { 74 return nil 75 } 76 77 // Initialize . 78 func (d *DefaultList) Initialize(sdk *cptype.SDK) {} 79 80 // Finalize . 81 func (d *DefaultList) Finalize(sdk *cptype.SDK) {} 82 83 // SkipOp providers default impl for user. 84 func (d *DefaultList) SkipOp(sdk *cptype.SDK) bool { return !d.Impl.Visible(sdk) } 85 86 // Visible . 87 func (d *DefaultList) Visible(sdk *cptype.SDK) bool { return true } 88 89 // BeforeHandleOp providers default impl for user. 90 func (d *DefaultList) BeforeHandleOp(sdk *cptype.SDK) {} 91 92 // AfterHandleOp providers default impl for user. 93 func (d *DefaultList) AfterHandleOp(sdk *cptype.SDK) {} 94 95 // StdStructuredPtrCreator . 96 func (d *DefaultList) StdStructuredPtrCreator() func() cptype.IStdStructuredPtr { 97 return func() cptype.IStdStructuredPtr { 98 return &StdStructuredPtr{ 99 StdInParamsPtr: &cptype.ExtraMap{}, 100 StdStatePtr: &cptype.ExtraMap{}, 101 StdDataPtr: &list.Data{}, 102 } 103 } 104 }