翻譯|使用教程|編輯:楊鵬連|2020-08-11 10:39:57.110|閱讀 484 次
概述:在此博客文章中,我們將說明如何基于特定條件在日歷的“資源”視圖中為單元格和資源著色。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
MindFusion.Diagramming for WinForms是一個能幫助你創(chuàng)建工作流和進(jìn)程圖表的.NET控件;數(shù)據(jù)庫實(shí)體關(guān)系圖表;組織圖表;對象層次和關(guān)系圖表;圖表和樹。它是基于對象-圖表框,表格和箭頭類型,將其歸類分派給其他并結(jié)合成復(fù)雜的結(jié)構(gòu)。該控件提供超過預(yù)先定義的50多種圖表框,如自定義設(shè)計樣式和對圖表框著色等。MindFusion.Diagramming for WinForms現(xiàn)已加入在線訂購,現(xiàn)在搶購立享優(yōu)惠,查看詳情>>
點(diǎn)擊下載MindFusion.Diagramming for WinForms最新試用版
在此博客文章中,我們將說明如何基于特定條件在日歷的“資源”視圖中為單元格和資源著色。在我們的示例中,我們從Java Swing Scheduler的示例中獲取 “資源表”示例,然后將其代碼進(jìn)行編輯,以著色與給定資源相對應(yīng)的單元格的標(biāo)題和背景,在我們的示例中,該示例為雇員:
I.常規(guī)設(shè)置
該示例使用Java Swing調(diào)度庫,該庫作為對該項(xiàng)目的Jar引用提供。
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));
該日歷類公開為定制時間表許多方法。我們首先將視圖設(shè)置為CalendarView itemSettings,而resourceViewSettings類為我們提供了許多用于自定義日歷外觀的選項(xiàng)。我們使用它們來扭曲資源表的外觀:
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類的實(shí)例。創(chuàng)建它們后,我們會將它們添加到日歷的聯(lián)系人集合中。為每個聯(lián)系人提供一個ID非常重要,因?yàn)檫@是我們稍后在代碼中識別它們的方式:
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);
代表資源任務(wù)的項(xiàng)目是約會實(shí)例。我們用代碼創(chuàng)建它們,并將它們添加到Calendar應(yīng)用程序的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);
資源視圖呈現(xiàn)與給定的資源, 位置, 項(xiàng)目, 任務(wù)等相對應(yīng)的單元格行。可用選項(xiàng)是GroupType枚舉的成員。在我們的示例中,我們按資源(例如員工)對視圖進(jìn)行分組:
calendar.setGroupType(GroupType.GroupByContacts);.setGroupType(GroupType.GroupByContacts);
至此,我們完成了常規(guī)設(shè)置,并繼續(xù)編寫可自定義應(yīng)用程序的代碼。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: