1 /* 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 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 16 #ifndef FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_PICKER_PICKER_TEXT_COMPONENT_H 17 #define FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_PICKER_PICKER_TEXT_COMPONENT_H 18 19 #include "core/components/picker/picker_base_component.h" 20 21 namespace OHOS::Ace { 22 23 class ACE_EXPORT PickerTextComponent : public PickerBaseComponent { 24 DECLARE_ACE_TYPE(PickerTextComponent, PickerBaseComponent); 25 26 public: 27 PickerTextComponent(); 28 ~PickerTextComponent() override = default; 29 GetSelected()30 uint32_t GetSelected() const 31 { 32 return selectedIndex_; 33 } SetSelected(uint32_t value)34 void SetSelected(uint32_t value) 35 { 36 selectedIndex_ = value; 37 HandleSelectedChange(); 38 } 39 GetRange()40 const std::vector<std::string>& GetRange() const 41 { 42 return range_; 43 } SetRange(const std::vector<std::string> & value)44 void SetRange(const std::vector<std::string>& value) 45 { 46 if (value.empty()) { 47 LOGE("input value of range is empty."); 48 return; 49 } 50 range_ = value; 51 HandleRangeChange(); 52 } 53 SetPrefix(const std::string & value)54 void SetPrefix(const std::string& value) 55 { 56 auto column = GetColumn(PICKER_TEXT_COLUMN); 57 if (!column) { 58 LOGE("can not get column of text"); 59 return; 60 } 61 62 column->SetPrefix(value); 63 } 64 SetSuffix(const std::string & value)65 void SetSuffix(const std::string& value) 66 { 67 auto column = GetColumn(PICKER_TEXT_COLUMN); 68 if (!column) { 69 LOGE("can not get column of text"); 70 return; 71 } 72 73 column->SetSuffix(value); 74 } 75 SetDefaultPickerItemHeight(const Dimension & value)76 void SetDefaultPickerItemHeight(const Dimension& value) 77 { 78 auto column = GetColumn(PICKER_TEXT_COLUMN); 79 if (!column) { 80 LOGE("can not get column of text"); 81 return; 82 } 83 84 column->SetFixHeight(value); 85 } 86 87 void OnTitleBuilding() override; 88 89 void OnColumnsBuilding() override; 90 91 std::string GetSelectedObject(bool isColumnChange, 92 const std::string& changeColumnTag, int32_t status = -1) const override; 93 94 void OnSelectedSaving() override; 95 OnDataLinking(const std::string & tag,bool isAdd,uint32_t index,std::vector<std::string> & resultTags)96 void OnDataLinking(const std::string& tag, bool isAdd, uint32_t index, 97 std::vector<std::string>& resultTags) override 98 { 99 resultTags.emplace_back(PICKER_TEXT_COLUMN); 100 } 101 102 private: 103 void HandleSelectedChange(); 104 void HandleRangeChange(); 105 106 uint32_t selectedIndex_ = 0; 107 std::string selectedValue_; 108 std::vector<std::string> range_ {""}; 109 }; 110 111 } // namespace OHOS::Ace 112 113 #endif // FOUNDATION_ACE_FRAMEWORKS_CORE_COMPONENTS_PICKER_PICKER_TEXT_COMPONENT_H 114