彩票走势图

MindFusion.Diagramming for WinForms使用教程:Java Scheduler中资源的自定义绘制(一)

翻译|使用教程|编辑:杨鹏连|2020-08-11 10:39:57.110|阅读 389 次

概述:在此博客文章中,我们将说明如何基于特定条件在日历的“资源”视图中为单元格和资源着色。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

MindFusion.Diagramming for WinForms是一个能帮助你创建工作流和进程图表的.NET控件;数据库实体关系图表;组织图表;对象层次和关系图表;图表和树。它是基于对象-图表框,表格和箭头类型,将其归类分派给其他并结合成复杂的结构。该控件提供超过预先定义的50多种图表框,如自定义设计样式和对图表框着色等。MindFusion.Diagramming for WinForms现已加入在线订购,现在抢购立享优惠,查看详情>>

点击下载MindFusion.Diagramming for WinForms最新试用版

在此博客文章中,我们将说明如何基于特定条件在日历的“资源”视图中为单元格和资源着色。在我们的示例中,我们从Java Swing Scheduler的示例中获取 “资源表”示例,然后将其代码进行编辑,以着色与给定资源相对应的单元格的标题和背景,在我们的示例中,该示例为雇员:

我们还将添加工具提示,以显示鼠标悬停在与该员工相对应的单元格上的时间:

I.常规设置

我们将演示和解释的代码是“资源表”示例的扩展,您可以从以下位置下载:
该示例使用Java Swing调度库,该库作为对该项目的Jar引用提供。
我们创建Calendar类的实例,并设置其当前时间,日期和结束日期–这是在资源视图中可见的最终日期:
calendar = new Calendar();= new Calendar();
calendar.setCurrentTime(DateTime.now());.setCurrentTime(DateTime.now());
calendar.setDate(new DateTime(2020, 6, 8));.setDate(new DateTime(2020, 6, 8));
calendar.setEndDate(new DateTime(2020, 7, 7));.setEndDate(new DateTime(2020, 7, 7));
该日历类公开为定制时间表许多方法。我们首先将视图设置为CalendarView itemSettings,而resourceViewSettings类为我们提供了许多用于自定义日历外观的选项。我们使用它们来扭曲资源表的外观:
calendar.getItemSettings().getSelectedItemStyle().setHeaderFont(new Font("Verdana", Font.PLAIN, 9));.getItemSettings().getSelectedItemStyle().setHeaderFont(new Font("Verdana", Font.PLAIN, 9));
calendar.getItemSettings().getSelectedItemStyle().setHeaderTextAlignment(EnumSet.of(TextAlignment.MiddleLeft));.getItemSettings().getSelectedItemStyle().setHeaderTextAlignment(EnumSet.of(TextAlignment.MiddleLeft));
calendar.getItemSettings().getSelectedItemStyle().setHeaderTextShadowStyle(ShadowStyle.None);.getItemSettings().getSelectedItemStyle().setHeaderTextShadowStyle(ShadowStyle.None);
......................................................
......................................................
calendar.getItemSettings().getStyle().setHeaderFont(new Font("Verdana", Font.PLAIN, 9));.getItemSettings().getStyle().setHeaderFont(new Font("Verdana", Font.PLAIN, 9));
calendar.getItemSettings().getStyle().setHeaderTextAlignment(EnumSet.of(TextAlignment.MiddleLeft));.getItemSettings().getStyle().setHeaderTextAlignment(EnumSet.of(TextAlignment.MiddleLeft));
calendar.getItemSettings().getStyle().setHeaderTextShadowStyle(ShadowStyle.None);.getItemSettings().getStyle().setHeaderTextShadowStyle(ShadowStyle.None);
calendar.getItemSettings().getStyle().setHeaderTextShadowOffset(0);.getItemSettings().getStyle().setHeaderTextShadowOffset(0);
......................................................
......................................................
calendar.getResourceViewSettings().getBottomTimelineSettings().setFormat("EEE (MM/dd)");.getResourceViewSettings().getBottomTimelineSettings().setFormat("EEE (MM/dd)");
calendar.getResourceViewSettings().getBottomTimelineSettings().setSize(15);.getResourceViewSettings().getBottomTimelineSettings().setSize(15);
calendar.getResourceViewSettings().getBottomTimelineSettings().getStyle().setHeaderBrush(Brushes.White);.getResourceViewSettings().getBottomTimelineSettings().getStyle().setHeaderBrush(Brushes.White);
calendar.getResourceViewSettings().getBottomTimelineSettings().getStyle().setHeaderFont(new Font("Verdana", Font.BOLD, 10));.getResourceViewSettings().getBottomTimelineSettings().getStyle().setHeaderFont(new Font("Verdana", Font.BOLD, 10));
员工是Contact类的实例。创建它们后,我们会将它们添加到日历的联系人集合中。为每个联系人提供一个ID非常重要,因为这是我们稍后在代码中识别它们的方式:
Contact contact = new Contact(); contact = new Contact();
contact.setFirstName("Mike");.setFirstName("Mike");
contact.setId("IdMike");.setId("IdMike");
contact.setName("Mike");.setName("Mike");
calendar.getContacts().add(contact);.getContacts().add(contact);
代表资源任务的项目是约会实例。我们用代码创建它们,并将它们添加到Calendar应用程序的items集合中;
app = new Appointment();= new Appointment();
app.setStartTime(new DateTime(2006, 3, 27));.setStartTime(new DateTime(2006, 3, 27));
app.setEndTime(new DateTime(2006, 3, 28));.setEndTime(new DateTime(2006, 3, 28));
app.getContacts().add(calendar.getSchedule().getContacts().get("IdMike"));.getContacts().add(calendar.getSchedule().getContacts().get("IdMike"));
app.setHeaderText("21965 Carbon Mesa Rd (1)");.setHeaderText("21965 Carbon Mesa Rd (1)");
app.setPriority(0);.setPriority(0);
calendar.getSchedule().getItems().add(app);.getSchedule().getItems().add(app);
资源视图呈现与给定的资源, 位置, 项目, 任务等相对应的单元格行。可用选项是GroupType枚举的成员。在我们的示例中,我们按资源(例如员工)对视图进行分组:
calendar.setGroupType(GroupType.GroupByContacts);.setGroupType(GroupType.GroupByContacts);
至此,我们完成了常规设置,并继续编写可自定义应用程序的代码。


想要购买该产品正版授权请点击【商城购买】,想了解更多产品信息请点击



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP