• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import {
2  memo,
3  __memo_context_type,
4  __memo_id_type,
5  State,
6  StateDecoratedVariable,
7  MutableState,
8  stateOf,
9  observableProxy,
10  Provide
11} from '@ohos.arkui.stateManagement' // should be insert by ui-plugins
12
13import {
14  Image,
15  ImageAttribute,
16  Grid,
17  GridItem,
18  GridAttribute,
19  GridItemAttribute,
20  Text,
21  TextAttribute,
22  Column,
23  ColumnAttribute,
24  Row,
25  RowAttribute,
26  Component,
27  Reusable,
28  Button,
29  ButtonAttribute,
30  ClickEvent,
31  UserView,
32  Scroller,
33  Navigation,
34  NavPathStack,
35  NavPathInfo,
36  Builder,
37  Color,
38  LazyForEach,
39  ForEach
40} from '@ohos.arkui.component'  // TextAttribute should be insert by ui-plugins
41
42import hilog from '@ohos.hilog'
43import hiTraceMeter from '@ohos.hiTraceMeter';
44
45import { routerParam, NavigationParam, pathStack } from './BaseDataMode'
46import { AnimationTest } from './AnimationTest'
47import { NodeContainerTest } from './NodeContainerTest'
48import { IndexAccessibilityTest } from './IndexAccessibilityTest'
49import { InspectorTest } from './InspectorTest'
50import { Image001Test } from './Image001Test'
51import { Image002Test } from './Image002Test'
52import { ButtonTest } from './ButtonTest'
53import { CheckboxTest } from './CheckboxTest'
54import { CheckboxGroupTest } from './CheckboxGroupTest'
55import { Grid001Test } from './Grid001Test'
56import { Grid002Test } from './Grid002Test'
57import { ResourceTest } from './ResourceTest'
58import { SideBarTest } from './SideBarTest'
59import { TextTest } from './TextTest'
60import { TextInputTest } from './TextInputTest'
61import { SearchTest } from './SearchTest'
62import { VideoTest } from './VideoTest'
63import { ShapeTest } from './ShapeTest'
64import { StateLinkPropTest } from './StateLinkPropTest'
65import { StorageLinkAndPropTest } from './StorageLinkAndPropTest'
66import { ObservedObjectLinkTest } from './ObservedObjectLinkTest'
67import { Layout001Test } from './Layout001Test'
68import { Layout002Test } from './Layout002Test'
69import { Layout003Test } from './Layout003Test'
70import { LayoutPropTest } from './LayoutPropTest'
71import { LayoutFunctionTest } from './LayoutFunctionTest'
72import { MultiComponentTest } from './MultiComponentTest'
73import { CanvasTest } from './CanvasTest'
74import { PageOne, PageTwo, NavigationTest } from './NavigationTest'
75import { BindSheetTest } from './BindSheetTest'
76import { BindContentCoverTest } from './BindContentCoverTest'
77import { RichEditorAddTest } from './RichEditorAddTest'
78import { RichEditorDeleteTest } from './RichEditorDeleteTest'
79import { RichEditorCopyPasteTest } from './RichEditorCopyPasteTest'
80import { GestureTest } from './GestureTest'
81import { PolymorphismTest } from './PolymorphismTest'
82import { FocusTest } from './FocusTest'
83import { GetHostContextTest } from './GetHostContextTest'
84import { EmbeddedComponentTest } from './EmbeddedComponentTest'
85import { UIExtensionComponentTest } from './UIExtensionComponentTest'
86
87@Component
88struct MyStateSample {
89  scroller: Scroller = new Scroller()
90  @State data: Array<string> = [
91    '$r使用资源测试',
92    'NodeContainer功能测试',
93    '无障碍测试',
94    'inspector接口测试',
95    'Image支持$r显示图片',
96    'Image支持网络图片图片',
97    'Image支持BASE64字符串图片',
98    'Button基础功能测试',
99    'checkbox基础功能测试',
100    'CheckboxGroup基础功能测试',
101    'Grid基础功能用例001',
102    'Grid基础功能用例002',
103    'NodeContent挂载命令式节点',
104    '动效测试001',
105    '模态类组件测试001',
106    '模态类组件测试002',
107    '导航类组件测试001',
108    '导航类组件测试002',
109    'Text文本框用例001',
110    'Search搜索框用例001',
111    'TextInput文本输入框用例001',
112    'Video组件基础功能测试用例',
113    'Shape组件基础功能测试用例',
114    'Canvas组件基础功能测试用例',
115    'State/Prop/Link支持基础功能测试',
116    'StorageLink/StorageProp支持基础功能观测',
117    '@Observed/@ObjectLink支持基础功能观测能力',
118    '布局基础功能测试用例001',
119    '布局基础功能测试用例002',
120    '布局基础功能测试用例003',
121    '布局组件基础功能测试用例',
122    '布局属性组件功能',
123    '一多组布局属性组件功能',
124    '富文本输入框用例001',
125    '富文本输入框用例002',
126    '富文本输入框用例003',
127    '手势基础功能测试用例',
128    '多态样式基础功能',
129    '焦点按键基础功能',
130    'getHostContext功能测试',
131    'embeddedComponent功能测试',
132    'UEC功能测试'
133  ];
134
135  @Builder
136  PageBuilder(name: string, param: Object|null|undefined) {
137    if (name == 'NodeContainer功能测试') {
138      NodeContainerTest()
139    } else if (name == '无障碍测试') {
140      IndexAccessibilityTest()
141    } else if (name == 'inspector接口测试') {
142      InspectorTest()
143    } else if (name === 'Image支持$r显示图片') {
144      Image001Test()
145    } else if (name === 'Image支持网络图片图片') {
146      Image002Test()
147    } else if (name === 'Image支持BASE64字符串图片') {
148
149    } else if (name == 'Button基础功能测试') {
150      ButtonTest()
151    } else if (name == 'checkbox基础功能测试') {
152      CheckboxTest()
153    } else if (name == 'CheckboxGroup基础功能测试') {
154      CheckboxGroupTest()
155    } else if (name == 'Grid基础功能用例001') {
156      Grid001Test()
157    } else if (name == 'Grid基础功能用例002') {
158      Grid002Test()
159    } else if (name == '$r使用资源测试') {
160      ResourceTest()
161    } else if (name == 'NodeContent挂载命令式节点') {
162
163    } else if (name == '动效测试001') {
164      AnimationTest()
165    } else if (name == '模态类组件测试001') {
166      BindSheetTest()
167    } else if (name == '模态类组件测试002') {
168      BindContentCoverTest()
169    } else if (name == '导航类组件测试001') {
170      NavigationTest()
171    } else if (name == '导航类组件测试002') {
172      SideBarTest()
173    } else if (name == 'Text文本框用例001') {
174      TextTest()
175    } else if (name == 'Search搜索框用例001') {
176      SearchTest()
177    } else if (name == 'TextInput文本输入框用例001') {
178      TextInputTest()
179    } else if (name == 'Video组件基础功能测试用例') {
180      VideoTest()
181    } else if (name == 'Shape组件基础功能测试用例') {
182      ShapeTest()
183    } else if (name == 'Canvas组件基础功能测试用例') {
184      CanvasTest()
185    } else if (name == 'State/Prop/Link支持基础功能测试') {
186      StateLinkPropTest()
187    } else if (name == 'StorageLink/StorageProp支持基础功能观测') {
188      StorageLinkAndPropTest()
189    } else if ( name == '@Observed/@ObjectLink支持基础功能观测能力') {
190      ObservedObjectLinkTest()
191    } else if (name == '布局基础功能测试用例001') {
192      Layout001Test()
193    } else if (name == '布局基础功能测试用例002') {
194      Layout002Test()
195    } else if (name == '布局基础功能测试用例003') {
196      Layout003Test()
197    } else if (name == '布局组件基础功能测试用例') {
198      LayoutFunctionTest()
199    } else if (name == '布局属性组件功能') {
200      LayoutPropTest()
201    } else if (name == '一多组布局属性组件功能') {
202      MultiComponentTest()
203    } else if (name == 'pageOne') {
204      PageOne()
205    } else if (name == 'pageTwo') {
206      PageTwo()
207    } else if (name == '富文本输入框用例001') {
208      RichEditorAddTest()
209    } else if (name == '富文本输入框用例002') {
210      RichEditorDeleteTest()
211    } else if (name == '富文本输入框用例003') {
212      RichEditorCopyPasteTest()
213    } else if (name == '手势基础功能测试用例') {
214      GestureTest()
215    } else if (name == '多态样式基础功能') {
216      PolymorphismTest()
217    } else if (name == '焦点按键基础功能') {
218      FocusTest()
219    } else if (name == 'getHostContext功能测试') {
220      GetHostContextTest()
221    } else if (name == 'embeddedComponent功能测试') {
222      EmbeddedComponentTest()
223    } else if (name == 'UEC功能测试') {
224      UIExtensionComponentTest()
225    }
226  }
227
228  build() {
229    Navigation(pathStack) {
230      Column(undefined) {
231        Grid(undefined, undefined) {
232          ForEach(this.data, (item: string, index: number): void => {
233            GridItem(undefined) {
234              Button(item)
235                .width('100%')
236                .height(44)
237                .onClick((e?: ClickEvent) => {
238                  let info: NavPathInfo = new NavPathInfo(item, new NavigationParam('this is push ' + item))
239                  pathStack.pushPath(info, undefined)
240                })
241            }
242            .width('80%')
243            .height(80)
244          }, (item: string, index: number): string => JSON.stringify(item.valueOf())
245          )
246        }
247        .height('100%')
248        .columnsTemplate('1fr 1fr')
249        .columnsGap(0)
250        .rowsGap(0)
251        .clip(true)
252      }
253    }.navDestination(this.PageBuilder)
254    .title('强基用例L0 Demo')
255  }
256}
257
258export class ComExampleTrivialApplication extends UserView {
259  getBuilder() {
260    hilog.info(0x0000, 'testTag', 'getBuilder');
261    let wrapper = @memo () => {
262      hilog.info(0x0000, 'testTag', 'MyStateSample');
263      MyStateSample(undefined)
264    }
265    return wrapper
266  }
267}