1-TitleDefaultBars和TitleTabData分别改名

2-FileMenuData改为FileMenu,SwitchLayout,SwitchView,SwitchDisplayMode,SwitchSelectFilter合并为一个文件方便维护,新建SubColumn.ets
This commit is contained in:
JackLee 2026-04-22 17:29:32 +08:00
parent 22d82fccfc
commit d460a43a99
22 changed files with 270 additions and 199 deletions

View File

@ -63,9 +63,7 @@ export default class EntryAbility extends UIAbility {
console.error(`Failed to obtain the main window. Code: ${err.code}, message: ${err.message}`);
return;
}
if(!RunEnvCheck(data)){
this.context.terminateSelf();
}
RunEnvCheck(data);
mdwInfo.win = data;
mdwInfo.winId =data.getWindowProperties().id;
//moveWindowTo

View File

@ -1,6 +1,6 @@
import { hilog } from '@kit.PerformanceAnalysisKit';
import { Execute } from '../eventhub/EventBase';
import { TitleTabData } from '../layout/TitleTabData';
import { TitleEditBars } from '../layout/TitleEditBars';
import { mdwInfo } from '../displaywindowinfo/DispWinInfo'
import {
TitleModel,
@ -26,7 +26,7 @@ export struct EventBtn {
//普通功能按钮调用的数据
@Param eventBtn: TitleButton | undefined = undefined;
//模块切换模块按钮数据
@Consumer('curtModel') curtModel: Array<TitleModel> | undefined = TitleTabData.mModels.get(0)
@Consumer('curtModel') curtModel: Array<TitleModel> | undefined = TitleEditBars.mModels.get(0)
@Builder
build() {
@ -48,11 +48,11 @@ export struct EventBtn {
Execute(this.eventBtn as TitleButton);
}else{
if (this.eventBtn?.btnEvent.command == 'Switch_Model_CAD') {
this.curtModel = TitleTabData.mModels.get(1)
this.curtModel = TitleEditBars.mModels.get(1)
} else if (this.eventBtn?.btnEvent.command == 'Switch_Model_CAM') {
this.curtModel = TitleTabData.mModels.get(2)
this.curtModel = TitleEditBars.mModels.get(2)
} else if (this.eventBtn?.btnEvent.command == 'Switch_Model_CAE') {
this.curtModel = TitleTabData.mModels.get(3)
this.curtModel = TitleEditBars.mModels.get(3)
}
}
})

View File

@ -1,7 +1,7 @@
import { mdwInfo } from '../displaywindowinfo/DispWinInfo'
import { Execute } from "../eventhub/EventBase";
import { TitleButton } from "../interface/Interface";
import {SwitchView} from "../layout/SwitchView"
import {SwitchView} from "../layout/SubColumn"
//按钮统一尺寸,该按钮为正方形,所以以主窗口宽为基准,长=高->正方形
let ebWidth=mdwInfo.winWidth*0.02;

View File

@ -3,6 +3,7 @@ import { CreateXCompNode } from './XCompMgr';
import { mdwInfo } from '../displaywindowinfo/DispWinInfo';
import { window } from '@kit.ArkUI';
import { common, StartOptions,Want } from "@kit.AbilityKit";
import { picker } from '@kit.CoreFileKit';
import NativeOpenCAX from 'libopencax.so';
import {
@ -60,6 +61,17 @@ export function CurrentTime():string {
return`${year}-${month}-${date} ${hours}:${minutes}:${seconds}`;
}
export function PickFile(suffix:Array<string>):string{
let fileStr:string='';
let documentPicker = new picker.DocumentViewPicker();
let documentSelectOptions = new picker.DocumentSelectOptions();
documentSelectOptions.selectMode=picker.DocumentSelectMode.FILE;
documentSelectOptions.fileSuffixFilters=suffix;
documentPicker.select(documentSelectOptions,(err: BusinessError,documentSelectResult: Array<string>) => {
fileStr =documentSelectResult.toString();
})
return fileStr;
}
//执行事件
export function Execute(event:TitleButton){
if(event.btnEvent.type==EventType.EVENT){
@ -79,9 +91,7 @@ export function EventExecute(event:TitleButton){
}
if(event?.btnEvent.command=='Create_New'){
CreateXCompNode("");
}
//视图切换
if(event?.btnEvent.command=='CMD_VIEW_FRONT'){
}else if(event?.btnEvent.command=='CMD_VIEW_FRONT'){
NativeOpenCAX.switchView("CMD_VIEW_FRONT");
}else if(event?.btnEvent.command=='CMD_VIEW_TOP'){
NativeOpenCAX.switchView("CMD_VIEW_TOP");
@ -97,54 +107,14 @@ export function EventExecute(event:TitleButton){
NativeOpenCAX.switchView("CMD_VIEW_ISO");
}else if(event?.btnEvent.command=='CMD_VIEW_DIM'){
NativeOpenCAX.switchView("CMD_VIEW_DIM");
}else if(event?.btnEvent.command=='CMD_OPEN_FILE'){
let suffix:Array<string>=['step','stp','prt']
PickFile(suffix);
}
}
//事件类型:页面
export function EventPage(event:TitleButton){
if(event?.btnEvent.command=='Page_NewFile') {
const winInfo: SubWinInfo = new SubWinInfo(event.btnName, event.btnEvent.page, mdwInfo.winWidth * 0.4, mdwInfo.winHeight * 0.4);
CreateAndShowSubWindow(winInfo);
} else if(event?.btnEvent.command=='Page_OpenFile'){
const winInfo:SubWinInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.4,mdwInfo.winHeight*0.4);
CreateAndShowSubWindow(winInfo);
}else if(event?.btnEvent.command=='Page_SaveAsFile'){
const winInfo:SubWinInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.4,mdwInfo.winHeight*0.4);
CreateAndShowSubWindow(winInfo);
} else if(event?.btnEvent.command=='Page_ImportFile'){
const winInfo:SubWinInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.4,mdwInfo.winHeight*0.4);
CreateAndShowSubWindow(winInfo);
}else if(event?.btnEvent.command=='Page_ExportFile'){
const winInfo:SubWinInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.4,mdwInfo.winHeight*0.4);
CreateAndShowSubWindow(winInfo);
}else if(event?.btnEvent.command=='Page_Options'){
const winInfo:SubWinInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.6,mdwInfo.winHeight*0.8);
CreateAndShowSubWindow(winInfo);
}
}
//事件类型:子窗体
export function EventWin(event:TitleButton){
let winInfo: SubWinInfo=new SubWinInfo;
if(event?.btnEvent.command=='Page_NewFile') {
winInfo = new SubWinInfo(event.btnName, event.btnEvent.page, mdwInfo.winWidth * 0.4, mdwInfo.winHeight * 0.4);
} else if(event?.btnEvent.command=='Page_OpenFile'){
winInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.4,mdwInfo.winHeight*0.4);
}else if(event?.btnEvent.command=='Page_SaveAsFile'){
winInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.4,mdwInfo.winHeight*0.4);
} else if(event?.btnEvent.command=='Page_ImportFile'){
winInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.4,mdwInfo.winHeight*0.4);
}else if(event?.btnEvent.command=='Page_ExportFile'){
winInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.4,mdwInfo.winHeight*0.4);
}else if(event?.btnEvent.command=='Page_Options'){
winInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.6,mdwInfo.winHeight*0.8);
}
EventCreateWin().then((result) => {
//执行订阅命令,加载Sub Window参数
if(result){
let context =mdwInfo.win?.getUIContext().getHostContext()?.getApplicationContext();
context?.eventHub.emit('InitSubWindow',winInfo);
}
});
}
@ -196,3 +166,29 @@ async function EventCreateWin(): Promise<boolean>{
return false;
}
}
//事件类型:子窗体
export function EventWin(event:TitleButton){
let winInfo: SubWinInfo=new SubWinInfo;
if(event?.btnEvent.command=='Page_NewFile') {
winInfo = new SubWinInfo(event.btnName, event.btnEvent.page, mdwInfo.winWidth * 0.4, mdwInfo.winHeight * 0.4);
}else if(event?.btnEvent.command=='Page_SaveAsFile'){
winInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.4,mdwInfo.winHeight*0.4);
} else if(event?.btnEvent.command=='Page_ImportFile'){
winInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.4,mdwInfo.winHeight*0.4);
}else if(event?.btnEvent.command=='Page_ExportFile'){
winInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.4,mdwInfo.winHeight*0.4);
}else if(event?.btnEvent.command=='Page_Options'){
winInfo=new SubWinInfo(event.btnName,event.btnEvent.page,mdwInfo.winWidth*0.6,mdwInfo.winHeight*0.8);
}
EventCreateWin().then((result) => {
//执行订阅命令,加载Sub Window参数
if(result){
let context =mdwInfo.win?.getUIContext().getHostContext()?.getApplicationContext();
context?.eventHub.emit('InitSubWindow',winInfo);
}
});
}

View File

@ -1,4 +1,4 @@
import { TitleDefaultBars } from './TitleDefaultBars'
import { TitleDefBars } from './TitleDefBars'
import { GroupActionMenu } from "./GroupAction";
import { MatrixModel ,DevModel} from "./MatrixModel";
@ -10,7 +10,7 @@ import {
} from "../interface/Interface";
export let TitleCAD:Array<TitleModel>=[
TitleDefaultBars[0],
TitleDefBars[0],
{cmName:'建模',cmPage:'',cmTips:'',cmEvents: [
//数组表示非单个BtnEvent
[

View File

@ -1,4 +1,4 @@
import {TitleDefaultBars} from './TitleDefaultBars'
import {TitleDefBars} from './TitleDefBars'
import { GroupActionMenu } from "./GroupAction";
import { MatrixModel ,DevModel} from "./MatrixModel";
import {
@ -10,7 +10,7 @@ import {
} from "../interface/Interface";
export let TitleCAE:Array<TitleModel>=[
TitleDefaultBars[0],
TitleDefBars[0],
{cmName:'仿真',cmPage:'',cmTips:'',cmEvents: [
//数组表示非单个BtnEvent
[
@ -32,7 +32,7 @@ export let TitleCAE:Array<TitleModel>=[
MatrixModel,
DevModel
]
export let TitleCAM:Array<TitleModel>=[TitleDefaultBars[0],
export let TitleCAM:Array<TitleModel>=[TitleDefBars[0],
{cmName:'仿真',cmPage:'',cmTips:'',cmEvents: [
//数组表示非单个BtnEvent
[

View File

@ -1,4 +1,4 @@
import {TitleDefaultBars} from './TitleDefaultBars'
import {TitleDefBars} from './TitleDefBars'
import { GroupActionMenu } from "./GroupAction";
import { MatrixModel,DevModel } from "./MatrixModel";
import {
@ -10,7 +10,7 @@ import {
} from "../interface/Interface";
export let TitleCAM:Array<TitleModel>=[
TitleDefaultBars[0],
TitleDefBars[0],
{cmName:'加工',cmPage:'',cmTips:'',cmEvents: [
//数组表示非单个BtnEvent
[

View File

@ -1,20 +0,0 @@
import {
TitleButton ,
ModelType,
EventType
} from "../interface/Interface";
//视图选择布局数据
export let DisplayMode:Array<TitleButton>=[
{btnModel:[ModelType.BASE],btnName:"线框",btnNamed:"",btnIcon:"display_hidden_line_invisible",btnTips:"正三轴测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"静态线框",btnNamed:"",btnIcon:"display_hidden_line_normal",btnTips:"正三轴测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"淡化边界线",btnNamed:"",btnIcon:"display_hidden_line_dim",btnTips:"正三轴测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"隐藏虚线",btnNamed:"",btnIcon:"display_hidden_line_dashed",btnTips:"正三轴测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"显示面边界线",btnNamed:"",btnIcon:"display_shade_show_edges",btnTips:"正三轴测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"显示小平面边界线",btnNamed:"",btnIcon:"display_shade_show_facet_edges",btnTips:"俯视图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"显示选择隐藏面",btnNamed:"",btnIcon:"display_select_hidden_faces",btnTips:"左视图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"显示选择隐藏线框",btnNamed:"",btnIcon:"display_select_hidden_wireframe",btnTips:"前视图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"着色",btnNamed:"",btnIcon:"display_shade",btnTips:"正等测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
]
export {TitleButton ,ModelType,EventType}

View File

@ -1,8 +0,0 @@
import {BaseMenuData } from "../interface/Interface";
import { TitleTabData } from "./TitleTabData";
//文件菜单数据初始化
export let FileMenuData:BaseMenuData= {
aMenus: TitleTabData.mFileModel[0][0].grpBtn,
aIndex: 0
};

View File

@ -1,16 +0,0 @@
import {
TitleButton ,
ModelType,
EventType
} from "../interface/Interface";
//视图选择布局数据
export let LayoutSwitch:Array<TitleButton>=[
{btnModel:[ModelType.BASE],btnName:"图层设置",btnNamed:"",btnIcon:"layer_settings",btnTips:"图层设置",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"视图中可见图层",btnNamed:"",btnIcon:"layer_vis_in_view",btnTips:"视图中可见图层",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"图层类别",btnNamed:"",btnIcon:"layer_category",btnTips:"图层类别",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"移至图层",btnNamed:"",btnIcon:"layer_move_to",btnTips:"移至图层",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"复制至图层",btnNamed:"",btnIcon:"layer_copy_to",btnTips:"复制至图层",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}}
]
export {TitleButton ,ModelType,EventType}

View File

@ -1,5 +1,5 @@
import { GroupActionMenu } from './GroupAction'
import { GetEventsPage } from '../EventsPages'
import { GetEventsPage } from '../subpages/MapPages'
import {
ModelType,
EventType,

View File

@ -1,19 +0,0 @@
import {
TitleButton,
ModelType,
EventType
} from "../interface/Interface";
//拾取器过滤布局数据
export let SelectionFilter:Array<TitleButton>=[
{btnModel:[ModelType.BASE],btnName:'实体特征',btnNamed:'',btnIcon:'',btnTips:'实体特征',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'曲线特征',btnNamed:'',btnIcon:'',btnTips:'曲线特征',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'加工特征',btnNamed:'',btnIcon:'',btnTips:'加工特征',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'基准',btnNamed:'',btnIcon:'',btnTips:'基准',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'边',btnNamed:'',btnIcon:'',btnTips:'边',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'面',btnNamed:'',btnIcon:'',btnTips:'面',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'线',btnNamed:'',btnIcon:'',btnTips:'线',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'视图',btnNamed:'',btnIcon:'',btnTips:'视图',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'图像',btnNamed:'',btnIcon:'',btnTips:'图像',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}}
]

View File

@ -0,0 +1,64 @@
import {
TitleButton ,
ModelType,
EventType,
BaseMenuData
} from "../interface/Interface";
import { TitleEditBars } from "./TitleEditBars";
//文件菜单数据初始化
export let FileMenu:BaseMenuData= {
aMenus: TitleEditBars.mFileModel[0][0].grpBtn,
aIndex: 0
};
//图层切换
export let SwitchLayout:Array<TitleButton>=[
{btnModel:[ModelType.BASE],btnName:"图层设置",btnNamed:"",btnIcon:"layer_settings",btnTips:"图层设置",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"视图中可见图层",btnNamed:"",btnIcon:"layer_vis_in_view",btnTips:"视图中可见图层",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"图层类别",btnNamed:"",btnIcon:"layer_category",btnTips:"图层类别",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"移至图层",btnNamed:"",btnIcon:"layer_move_to",btnTips:"移至图层",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"复制至图层",btnNamed:"",btnIcon:"layer_copy_to",btnTips:"复制至图层",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}}
]
//视图切换文本和icon
export let SwitchView:Array<TitleButton>=[
{btnModel:[ModelType.BASE],btnName:"正等测图",btnNamed:"",btnIcon:"base_view_tfr_iso",btnTips:"正等测图",btnEvent:{uid:'',command:'CMD_VIEW_ISO',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"俯视图",btnNamed:"",btnIcon:"base_view_top",btnTips:"俯视图",btnEvent:{uid:'',command:'CMD_VIEW_TOP',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"正二轴测图",btnNamed:"",btnIcon:"base_view_tfr_tri",btnTips:"正二轴测图",btnEvent:{uid:'',command:'CMD_VIEW_DIM',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"左视图",btnNamed:"",btnIcon:"base_view_left",btnTips:"左视图",btnEvent:{uid:'',command:'CMD_VIEW_LEFT_SIDE',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"前视图",btnNamed:"",btnIcon:"base_view_front",btnTips:"前视图",btnEvent:{uid:'',command:'CMD_VIEW_FRONT',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"右视图",btnNamed:"",btnIcon:"base_view_right",btnTips:"右视图",btnEvent:{uid:'',command:'CMD_VIEW_RIGHT_SIDE',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"后视图",btnNamed:"",btnIcon:"base_view_back",btnTips:"后视图",btnEvent:{uid:'',command:'CMD_VIEW_REAR',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"仰视图",btnNamed:"",btnIcon:"base_view_bottom",btnTips:"仰视图",btnEvent:{uid:'',command:'CMD_VIEW_BOTTOM',page:'',type:EventType.EVENT,args:[]}},
]
//视图渲染类型文本和cion
export let SwitchDisplayMode:Array<TitleButton>=[
{btnModel:[ModelType.BASE],btnName:"线框",btnNamed:"",btnIcon:"display_hidden_line_invisible",btnTips:"正三轴测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"静态线框",btnNamed:"",btnIcon:"display_hidden_line_normal",btnTips:"正三轴测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"淡化边界线",btnNamed:"",btnIcon:"display_hidden_line_dim",btnTips:"正三轴测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"隐藏虚线",btnNamed:"",btnIcon:"display_hidden_line_dashed",btnTips:"正三轴测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"显示面边界线",btnNamed:"",btnIcon:"display_shade_show_edges",btnTips:"正三轴测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"显示小平面边界线",btnNamed:"",btnIcon:"display_shade_show_facet_edges",btnTips:"俯视图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"显示选择隐藏面",btnNamed:"",btnIcon:"display_select_hidden_faces",btnTips:"左视图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"显示选择隐藏线框",btnNamed:"",btnIcon:"display_select_hidden_wireframe",btnTips:"前视图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"着色",btnNamed:"",btnIcon:"display_shade",btnTips:"正等测图",btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
]
//拾取器过滤文本和icon
export let SwitchSelectFilter:Array<TitleButton>=[
{btnModel:[ModelType.BASE],btnName:'实体特征',btnNamed:'',btnIcon:'',btnTips:'实体特征',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'曲线特征',btnNamed:'',btnIcon:'',btnTips:'曲线特征',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'加工特征',btnNamed:'',btnIcon:'',btnTips:'加工特征',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'基准',btnNamed:'',btnIcon:'',btnTips:'基准',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'边',btnNamed:'',btnIcon:'',btnTips:'边',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'面',btnNamed:'',btnIcon:'',btnTips:'面',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'线',btnNamed:'',btnIcon:'',btnTips:'线',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'视图',btnNamed:'',btnIcon:'',btnTips:'视图',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'图像',btnNamed:'',btnIcon:'',btnTips:'图像',btnEvent:{uid:'',command:'',page:'',type:EventType.EVENT,args:[]}}
]

View File

@ -1,19 +0,0 @@
import {
TitleButton,
ModelType,
EventType
} from "../interface/Interface";
//视图选择布局数据
export let SwitchView:Array<TitleButton>=[
{btnModel:[ModelType.BASE],btnName:"正等测图",btnNamed:"",btnIcon:"base_view_tfr_iso",btnTips:"正等测图",btnEvent:{uid:'',command:'CMD_VIEW_ISO',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"俯视图",btnNamed:"",btnIcon:"base_view_top",btnTips:"俯视图",btnEvent:{uid:'',command:'CMD_VIEW_TOP',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"正二轴测图",btnNamed:"",btnIcon:"base_view_tfr_tri",btnTips:"正二轴测图",btnEvent:{uid:'',command:'CMD_VIEW_DIM',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"左视图",btnNamed:"",btnIcon:"base_view_left",btnTips:"左视图",btnEvent:{uid:'',command:'CMD_VIEW_LEFT_SIDE',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"前视图",btnNamed:"",btnIcon:"base_view_front",btnTips:"前视图",btnEvent:{uid:'',command:'CMD_VIEW_FRONT',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"右视图",btnNamed:"",btnIcon:"base_view_right",btnTips:"右视图",btnEvent:{uid:'',command:'CMD_VIEW_RIGHT_SIDE',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"后视图",btnNamed:"",btnIcon:"base_view_back",btnTips:"后视图",btnEvent:{uid:'',command:'CMD_VIEW_REAR',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:"仰视图",btnNamed:"",btnIcon:"base_view_bottom",btnTips:"仰视图",btnEvent:{uid:'',command:'CMD_VIEW_BOTTOM',page:'',type:EventType.EVENT,args:[]}},
]

View File

@ -1,22 +1,23 @@
import { DevModel, MatrixModel } from "./MatrixModel";
import { GroupActionMenu } from "./GroupAction";
import { GetEventsPage} from '../EventsPages'
import { GetEventsPage} from '../subpages/MapPages'
import {
TitleInterface,
TitleGroup,
TitleModel,
TitleButton,
ModelType,
EventType,
TitleGroup,
TitleModel
} from "../interface/Interface";
} from '../interface/Interface'
//主页栏目布局数据
export let TitleDefaultBars:Array<TitleModel>=
//初始化TitleDefaultBars内容
export let TitleDefBars:Array<TitleModel>=
[
{cmName:'主页',cmPage:'',cmTips:'',cmEvents:
[[[{ grpName:'文件', grpBtn:
[
{btnModel:[ModelType.BASE],btnName:'新建',btnNamed:'',btnIcon:'base_new_file',btnTips:'新建',btnEvent:{uid:'',command:'Page_NewFile',page:GetEventsPage('Page_NewFile'),type:EventType.WIN,args:[]}},
{btnModel:[ModelType.BASE],btnName:'打开',btnNamed:'',btnIcon:'base_open_file',btnTips:'打开',btnEvent:{uid:'',command:'Page_OpenFile',page:GetEventsPage('Page_OpenFile'),type:EventType.WIN,args:[]}},
{btnModel:[ModelType.BASE],btnName:'打开',btnNamed:'',btnIcon:'base_open_file',btnTips:'打开',btnEvent:{uid:'',command:'CMD_OPEN_FILE',page:'',type:EventType.EVENT,args:[]}},
[
{btnModel:[ModelType.BASE],btnName:'保存',btnNamed:'',btnIcon:'base_save_file',btnTips:'保存',btnEvent:{uid:'',command:'CMD_VIEW_ISO',page:'',type:EventType.EVENT,args:[]}},
{btnModel:[ModelType.BASE],btnName:'另存为',btnNamed:'',btnIcon:'base_saveas_file',btnTips:'另存为',btnEvent:{uid:'',command:'Page_SaveAsFile',page:GetEventsPage('Page_SaveAsFile'),type:EventType.WIN,args:[]}},
@ -31,3 +32,5 @@ export let TitleDefaultBars:Array<TitleModel>=
MatrixModel,
DevModel
]
export { TitleInterface }

View File

@ -1,23 +1,20 @@
import { TitleDefaultBars } from './TitleDefaultBars'
import {TitleCAD} from './CAD'
import {TitleCAM} from './CAM'
import {TitleCAE} from './CAE'
import {TitleDefBars} from './TitleDefBars'
import {
TitleInterface,
TitleGroup,
TitleModel
TitleModel,
} from '../interface/Interface'
//Title栏得布局数据
export let TitleTabData:TitleInterface= {
//进入某个模块时的内容
export let TitleEditBars:TitleInterface= {
mId:"0",
mFileModel:TitleDefaultBars[0].cmEvents[0] as Array<Array<TitleGroup>>,
mFileModel:TitleDefBars[0].cmEvents[0] as Array<Array<TitleGroup>>,
mModels:new Map<number,Array<TitleModel>>([
[0,TitleDefaultBars],
[0,TitleDefBars],
[1,TitleCAD],
[2,TitleCAM],
[3,TitleCAE]
])
}
export { TitleInterface }
}

View File

@ -1,19 +1,13 @@
import { window} from '@kit.ArkUI';
import { display } from '@kit.ArkUI';
import { deviceInfo } from '@kit.BasicServicesKit';
export function RunEnvCheck(win:window.Window):boolean{
let resolve:boolean=true;
import { display, window } from '@kit.ArkUI';
import {MsgTips} from '../subpages/MsgTips'
export function RunEnvCheck(win: window.Window) {
//获取屏幕状态,仅仅支持横屏模式.LANDSCAPE(横屏) or LANDSCAPE_INVERTED(反向横屏)
let orientation:number = display.getDefaultDisplaySync().orientation;
if(orientation!=1 && orientation!=3){
resolve=false;
//TIPS提示横屏
let orientation: number = display.getDefaultDisplaySync().orientation;
if (orientation != 1 && orientation != 3) {
MsgTips(win,'请切换到<横屏模式>后重试')
}
let freeWinState=win.isInFreeWindowMode();
if(!freeWinState){
resolve=false;
//TIPS提示开启自由窗口
let freeWinState = win.isInFreeWindowMode();
if (!freeWinState) {
MsgTips(win,'请开启<自由窗口模式>后重试')
}
return resolve;
}

View File

@ -1,6 +1,5 @@
let EventsPages: Map<string, string> = new Map<string, string>([
let MapPages: Map<string, string> = new Map<string, string>([
["Page_NewFile", "pages/subpages/file/SWNewFile"],
["Page_OpenFile", "pages/subpages/file/SWOpenFile"],
["Page_SaveAsFile", "pages/subpages/file/SWSaveAsFile"],
["Page_ImportFile", "pages/subpages/file/SWImportFile"],
["Page_ExportFile", "pages/subpages/file/SWExportFile"],
@ -8,5 +7,5 @@ let EventsPages: Map<string, string> = new Map<string, string>([
]);
export function GetEventsPage(key: string): string {
return EventsPages.get(key) || '';
return MapPages.get(key) || '';
}

View File

@ -0,0 +1,97 @@
import { BusinessError } from '@kit.BasicServicesKit';
import { ComponentContent, promptAction, UIContext, window } from '@kit.ArkUI';
import { hilog } from '@kit.PerformanceAnalysisKit';
const DOMAIN = 0x0000;
export class PromptAction {
static ctx: UIContext;
static contentNode: ComponentContent<Object>;
static options: promptAction.BaseDialogOptions;
static setContext(context: UIContext) {
PromptAction.ctx = context;
}
static setContentNode(node: ComponentContent<Object>) {
PromptAction.contentNode = node;
}
static setOptions(options: promptAction.BaseDialogOptions) {
PromptAction.options = options;
}
static async openDialog() {
if (PromptAction.contentNode !== null) {
try{
await PromptAction.ctx.getPromptAction().openCustomDialog(PromptAction.contentNode, PromptAction.options);
}catch(error){
let message = (error as BusinessError).message;
let code = (error as BusinessError).code;
hilog.error(DOMAIN, 'testTag', 'testTag', 'CloseCustomDialog args error code is ${code}, message is ${message}');
}
}
}
static async closeDialog() {
if (PromptAction.contentNode !== null) {
try{
await PromptAction.ctx.getPromptAction().closeCustomDialog(PromptAction.contentNode);
}catch(error){
let message = (error as BusinessError).message;
let code = (error as BusinessError).code;
hilog.error(DOMAIN, 'testTag', 'testTag', 'CloseCustomDialog args error code is ${code}, message is ${message}');
}
}
}
static closeDialogAndDispose() {
PromptAction.ctx.getPromptAction().closeCustomDialog(PromptAction.contentNode)
.then(() => {
hilog.info(DOMAIN, 'testTag', 'testTag', 'CloseCustomDialog complete.g complete.');
if (PromptAction.contentNode !== null) {
PromptAction.contentNode.dispose(); // 释放contentNode
}
})
.catch((error: BusinessError) => {
let message = (error as BusinessError).message;
let code = (error as BusinessError).code;
hilog.error(DOMAIN, 'testTag', 'testTag', 'CloseCustomDialog args error code is ${code}, message is ${message}');
})
}
static updateDialog(options: promptAction.BaseDialogOptions) {
if (PromptAction.contentNode !== null) {
PromptAction.ctx.getPromptAction().updateCustomDialog(PromptAction.contentNode, options)
.then(() => {
hilog.info(DOMAIN, 'testTag', 'testTag', 'UpdateCustomDialog complete.');
})
.catch((error: BusinessError) => {
let message = (error as BusinessError).message;
let code = (error as BusinessError).code;
hilog.error(DOMAIN, 'testTag', 'testTag', 'UpdateCustomDialog args error code is ${code}, message is ${message}');
})
}
}
}
@Builder
function MsgTipsDialog(tipStr: string) {
Column() {
Text(tipStr)
.fontSize(50)
.fontWeight(FontWeight.Bold)
.margin({ bottom: 36 })
Button('Close')
.onClick(() => {
PromptAction.closeDialog();
})
}.backgroundColor('#FFF0F0F0')
}
export function MsgTips(win:window.Window,msgStr:string){
let ctx = win.getUIContext();
let contentNode: ComponentContent<Object> = new ComponentContent(ctx, wrapBuilder(MsgTipsDialog), msgStr);
PromptAction.setContext(ctx);
PromptAction.setContentNode(contentNode);
PromptAction.setOptions({ alignment: DialogAlignment.Top, offset: { dx: 0, dy: 50 } });
PromptAction.openDialog();
}

View File

@ -1,14 +1,15 @@
import { TextComboBox,TextInputComboBox } from "../customcontroller/ComboBox";
import { TitleButton } from "../interface/Interface";
import { ViewDialog } from "../customcontroller/Dialog"
import { SwitchView } from "../layout/SwitchView";
import {SelectionFilter} from "../layout/SelectionFilter"
import {DisplayMode} from "../layout/DisplayMode"
import { LayoutSwitch } from "../layout/LayoutSwitch";
import { FileMenuData } from "../layout/FileMenuData";
import { mdwInfo } from '../displaywindowinfo/DispWinInfo'
import { SubColumnMenu} from "../customcontroller/Button";
import { SubColumnMenu} from "../customcontroller/Button"
import {
FileMenu,
SwitchLayout,
SwitchView,
SwitchDisplayMode,
SwitchSelectFilter
} from '../layout/SubColumn'
@ComponentV2
export struct TitleColumnSub {
@Local layerArray: Array<TitleButton> = [];
@ -35,15 +36,15 @@ export struct TitleColumnSub {
build(){
Row({space:5}){
SubColumnMenu({
menus:FileMenuData.aMenus as Array<TitleButton>, icon:'base_shortcut_menu',name:'菜单'})
menus:FileMenu.aMenus as Array<TitleButton>, icon:'base_shortcut_menu',name:'菜单'})
.margin({ top:0, left: 5, bottom: 0, right: 0 })
Text('|')
.fontSize(16)
TextComboBox({name:'拾取类型:',menu:SelectionFilter})
TextComboBox({name:'拾取类型:',menu:SwitchSelectFilter})
Text('图层:')
.fontSize(16)
TextInputComboBox({menu:this.layerArray}).width('10%')
SubColumnMenu({menus:LayoutSwitch})
SubColumnMenu({menus:SwitchLayout})
//视角弹窗
Button().onClick((event) => {
this.dX=event.windowX
@ -61,11 +62,16 @@ export struct TitleColumnSub {
width: '80%', // 图片宽度占满按钮
height: '80%' // 图片高度占满按钮
})
SubColumnMenu({menus:DisplayMode})
SubColumnMenu({menus:SwitchDisplayMode})
Blank().layoutWeight(1)
Button('TabsBar显示/隐藏').onClick(()=>{
//编辑or预览
Button('预览/编辑').onClick(()=>{
this.$subOverlayState(!this.subOverlayState);
})
//
Button('鼠标/触控').onClick(()=>{
this.$subOverlayState(!this.subOverlayState);
})
}.width('100%')
.height('100%')
.backgroundBlurStyle(BlurStyle.Thin,

View File

@ -1,7 +1,7 @@
import { hilog } from '@kit.PerformanceAnalysisKit';
import {TitleModel} from '../interface/ModelInterface'
import {TitleTabData} from '../layout/TitleTabData'
import { FileMenuData } from "../layout/FileMenuData";
import {TitleEditBars} from '../layout/TitleEditBars'
import { FileMenu } from "../layout/SubColumn";
import {TitleTabContent} from './TitleTabContent'
import { TitleButton } from '../interface/ButtonInterface';
import { BaseMenu } from '../customcontroller/Menu';
@ -14,18 +14,18 @@ export struct TitleTab {
//当前的顶部导航选择页
@Local selectedIndex: number = 0; // 当前选中的索引
//模块Bar栏
@Provider('curtModel') curtModel:Array<TitleModel>|undefined= TitleTabData.mModels.get(this.selectedIndex)
@Provider('curtModel') curtModel:Array<TitleModel>|undefined= TitleEditBars.mModels.get(this.selectedIndex)
@Builder
build() {
Flex({ direction: FlexDirection.Column }){
Scroll() {
Row({space:0}) {
Button((FileMenuData.aMenus[0] as TitleButton).btnName)
Button((FileMenu.aMenus[0] as TitleButton).btnName)
.width('7%')
.fontSize(16)
.fontColor($r('sys.color.font'))
.bindMenu(BaseMenu(FileMenuData))
.bindMenu(BaseMenu(FileMenu))
.type(ButtonType.Normal)
.backgroundColor(Color.Transparent)
ForEach(this.curtModel, (item: TitleModel, index: number) => {

View File

@ -7,7 +7,6 @@
"pages/subpages/file/SWNewFile",
"pages/subpages/file/SWSaveAsFile",
"pages/subpages/file/SWImportFile",
"pages/subpages/file/SWExportFile",
"pages/subpages/file/SWOpenFile"
"pages/subpages/file/SWExportFile"
]
}