Mobile CodenameOne:是否可以定义';视图';对于应用程序的不同用户组?

Mobile CodenameOne:是否可以定义';视图';对于应用程序的不同用户组?,mobile,views,codenameone,Mobile,Views,Codenameone,我目前正计划使用CodenameOne开发一个应用程序,我想知道是否有可能在应用程序上定义一些类似数据库的视图,以便不同的用户看到应用程序的不同部分 我说的是一个应用程序,它是项目结构的一部分,是由不同的模块组成的,需要分别购买,,但应该集成到同一个应用程序中。作为某种广告策略,未包装的部分应该显示出来,但没有任何功能 另一个与此密切相关的问题是,如何让不同的人使用同一应用程序的不同GUI 有一个主人和一个工人 Master有以下菜单: - show all machines - show av

我目前正计划使用CodenameOne开发一个应用程序,我想知道是否有可能在应用程序上定义一些类似数据库的视图,以便不同的用户看到应用程序的不同部分

我说的是一个应用程序,它是项目结构的一部分,是由不同的模块组成的,需要分别购买,但应该集成到同一个应用程序中。作为某种广告策略,未包装的部分应该显示出来,但没有任何功能

另一个与此密切相关的问题是,如何让不同的人使用同一应用程序的不同GUI

有一个主人和一个工人

Master有以下菜单:

- show all machines
- show available teams
- send message to team x
- show my machine
- show my team
- send message to master
Worker具有以下菜单:

- show all machines
- show available teams
- send message to team x
- show my machine
- show my team
- send message to master
如果主人重新分配了一个团队,团队成员菜单的内容就会相应地改变,而应用程序本身不会改变

如果一个工人被分配为master,服务器将发送类似“你现在是master”的信息,并且视图将更改为masters视图(仍在同一个应用程序中)


这可能吗?

如果我理解正确的话,对类似的东西没有内置支持。您可能会使用一组权限系统和if语句来实现这一点,但没有一个系统可以明确地说“此模块仅对该用户可见”

我相信您可能需要的只是动态构建这些视图。如果应用程序逻辑说某个用户是主用户,那么您将为该用户构建一个类似于主用户的视图,否则您将创建简单的工作视图。关于分配(掌握工人的规则),它只是基本的一对多关系范式

使用GUI+代码动态构建视图的提示:

public UserViewBuilder extends UIBuilder { 
    private Resource res; 
    private Container view;
    //User is the parent class of both Worker and Master
    private User user;
    ...
    public UserView(Resource res){
         this.res = res;
    }
    private void init(boolean isMasterView){
        //where you initialize all the component of your view
    }
    ...
    public Container viewSelector(boolean isUserMaster){
         if(isUserMaster){
              //getting data for a master-user, just throwing ideas
              this.user = Data.fetchYourMasterData();
              //getting the design from GUI
              this.view =this.createContainer(res,"ContainerDesignForMaster");
              //putting the necessary data into the design
              this.init(isUserMaster);
           }
           else {
              //getting data for a worker-user, just throwing ideas
              this.user = Data.fetchYourWorkerData();
              //getting the design from GUI
              this.view =this.createContainer(res,"ContainerDesignForWorker");
              //putting the necessary data into the design
              this.init(isUserMaster);
            }
    }
    ...
}
使用这种架构方法,您将使用GUI生成器为master和worker创建设计,然后编写视图选择逻辑


(如果您需要一个工作示例netbeans项目以便更好地理解,请告诉我)

当我进一步思考这个问题时,我想到了一个可能性:如果我有一个登录屏幕,在有人登录后,服务器将查找其权限并向移动设备发送指令,从而使其能够构建特定于用户的动态GUI,该怎么办?你认为呢?这是一个很好的答案,会起作用,有些人选择了这种方法。它依赖于使用旧的UI构建器,这是我们正在远离的东西。管理它也有点困难,因为它需要手动绑定事件处理。谢谢你的回答。如果我使用这种概念,是否不仅可以动态处理不同的视图,而且允许用户同时拥有多个视图?如果
master(machine1)
也因为原始master生病而被分配为
master(machine2)