You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Magnolia Shell是Magnolia CMS的可视化层,使外观和感觉上能够立即突出Magnolia 5的特点。Shell用于创建您登入系统后所看见的用户界面:绿色的背景,Magnolia标志图片,以及三个Shell应用的图标:Apps,Pulse,和Favorites。

Magnolia Shell作为应用容器

在Magnolia 5里,应用这种工具的界面焦点非常狭隘,只能让您进行一些紧密联系的任务或处理特定的一套数据。应用不一定需要工作在诸如网站的页面这样的单个物理数据集上,它还可以涵盖多个物理数据集,来完成应用包含的任务。应用中包含子应用。应用一旦被开启,它在Apps屏幕上的应用板块会改变颜色,来说明它正在运行。您可以在任何时候返回到Apps屏幕上,只要没有正在运行的对话即可。在Apps屏幕上,您可以切换到或开启另一个应用。从用户界面上来说,Magnolia Shell是应用所在的页面标头以下的区域,在显示正在运行的应用的浏览器上为浅绿色部分。

然而Shell不仅能为系统本身提供可视化界面,也使您自己的应用看起来像是属于Magnolia CMS的一部分。Shell为所有的应用添加一个共同的视觉同一性,让它们能够合适的装进用户界面的其他部分。做一个类推来帮助理解,可以把Magnolia Shell想象成电脑上的操作系统。在Mac OS X上,桌面和菜单是不可改变的。它们总是现时的,为打开应用程序和应用程序添加菜单提供位置。Windows 8样式的用户界面为Windows应用提供共同的视外观和感觉,在所有运行Microsoft系统的设备上创建一个熟悉的界面。这些就正是Magnolia Shell所做的。

从功能的角度说,Shell是一个为应用提供基本服务的容器,使您能够启动应用并显示对话。同时,Shell也负责您在不同的应用之间切换时的视觉效果。例如,当您回到Apps屏幕上准备去启动另一个应用时,之前运行的应用就会褪到背景里。这种透视的界面效果实际上是应用堆栈造成的,告诉您应用已经在运行,如果您回到那个应用,您会发现您的工作还停留在您离开时的状态。

AdminCentral

如果您对Magnolia 4熟悉的话,您现在可能已经认出Magnolia Shell差不多和旧版本的AdminCentral同义。AdminCentral这个术语在Magnolia 5里依然有效并适用。管理系统是在AdminCentral里完成的,Magnolia Shell被用作它的用户界面。

旧的AdminCentral负责创建一个固定的用户界面图。当您在左边的菜单里点击一个命令时,内容会被显示在右边。这个动作是可以预见的,并且容易学,因为它是固定的。相似地,Magnolia Shell提供一个不随Magnolia CMS实例而改变的用户界面。

Magnolia Shell用户界面是被保护的,也就是说,您不能对其做改动。用户界面是Magnolia视觉同一性的一部分,使系统能够立刻被识别,让用户能够很快找到方向。这就是为什么我们不允许用户来编辑Shell或它的部件。然而,您可以在Apps屏幕上添加您自己的应用,甚至创建您自己的应用组。

终端用户需要了解的Shell

终端用户如编辑者和管理员将Magnolia Shell看作是管理界面。Shell让用户能够启动应用并在不同应用之间切换,收取通知,以及标记常去的位置和任务。Shell帮助用户启动应用,然后将控制权交还到用户手中。这对所有的应用都是这样,包括那三个自带的应用。Shell不负责应用里发生的一切。因此,终端用户可能永远不需要太了解Shell。它只默默的在后台保持着一些程序的运行。

开发者需要了解的Shell

作为一个程序开发者,了解Magnolia Shell做什么是有好处的。然而,一旦您知道它是做什么的,您就可以完全忘记Shell,将它看作是一个操作系统详述。

将Shell看作是一个工具箱。它定义您可以或不可以对系统做的事情,这些事情是在非常低的层面上的基本服务。这就意味着您通常不需要跟Shell直接进行交互。针对常用的应用开发任务,Magnolia有很多直观的捷径。

例如,Shell负责给Pulse信息中心发送消息。然后,您并不需要知道借助的具体Shell方法来发送那条消息。不如在您的应用代码里,创建一个到AppContext对象的引用。这个对象提供发送消息,显示确认对话,以及很多其它日常事务的捷径。与AppContext进行交互比用Shell本身更为直接。

Magnolia Shell的任务

总之,Shell做以下事情:

  • 提供运行应用的环境。
  • 创建系统的用户界面。
  • 容纳应用启动器和Pulse信息中心,并为打开他们提供途径。
  • 在Shell里,可以用图标和信息面板显示系统和应用的通知。
  • 在Shell里,可以看到用户的档案,个人设置,以及消息。
  • 在运行的应用之间切换,使应用转变对用户可见。
  • 提供窗口管理。
  • 显示对话,处理对话模式。 
  • 接受应用发起长时间运行的任务,并监视它们一直运行到结束。
  • 为在应用和子应用之间移动和拷贝内容提供工具。
  • 为应用分组。
  • 可以做过滤器,为了只显示附属于某个特定的网站或工程的应用和控制板数据。

为了能够运用Shell的服务,可以添加一个到AppContext对象的引用到您的应用代码里。

添加一个引用到AppContext对象
public class HelloWorldApp extends BaseApp {
    private AppContext appContext;

    @Inject
    public HelloWorldApp(AppContext appContext, AppView view) {
        super(appContext, view);
    }
    ...
}

Magnolia Shell作为用户界面元素

在用户界面,Shell相当于是浏览器视口,是父容器。Shell里是应用框架。框架就像是应用的过程管理者:它管理应用的生命周期(开始,终止,聚焦)。在您的应用代码里,您可以要求应用框架为您执行任务。框架也会反过来与Magnolia Shell进行对话,隐藏低级别的详细内容。

下个级别就是选项卡。每个应用程序必须至少有一个选项卡,但它其实可以有很多。例如,Pages应用有一个选项卡叫做Pages。对于每个您编辑的网页,应用打开一个新的选项卡。

选项卡里包含工作台。它是用户界面里应用数据被显示的区域。例如,在Pages应用里,数据就是一个页面的列表。您可以将数据用三种不同的视图显示:树,列表,或网格。

图:Magnolia Shell是最外层的用户界面元素,基本等于浏览器视口。

我们将会在下个小节里讲述一个应用的各个组成部分。

  • No labels