smartgwt日历getdaybodyhtml问题

时间:2013-03-25 03:43:07

标签: firefox calendar smartgwt

我有一个smartgwt日历工具的问题,我已经通过类日历的受保护方法getdaybodyhtml()将其定制为在当月的某些日期分配特殊图标标记,一切正常,除了我显示的一件事Chrome(所有版本)IE(7,8,9)和FF(至14.0.1)上的日历,但是当我在FF上显示日历(15到19之间)时,不会显示此标志图标。我已经对代码进行了跟踪,发现我在getdaybodyhtml()方法中定义的html代码没有打印出来。

我正在寻找smartgwt这样的任何问题,但我没有发现任何相关的问题。 将收到任何帮助。 (对不起,如果我的英语不太好,是我的第二语言)

这是一段代码:

private Calendar calendar = new Calendar(){
    @Override
    @SuppressWarnings("deprecation")
    protected String getDayBodyHTML(Date date, CalendarEvent[] events, Calendar calendar, int rowNum, int colNum) {
        String value = defaultMessage != null ? defaultMessage : date.getDate()+"";
        // The "events" are the events of the day
        List<CalendarEvent> calendarEvents =  new ArrayList<CalendarEvent>(Arrays.asList(events));
        if(calendarEvents != null && calendarEvents.size() > 0) {
            // Removing the tooltip and the excluded colours
            removeTooltipsFromCalendar(calendar,date);
            removeExcludedColoursFromCalendar(calendarEvents);
            if(calendarEvents.size() == 1){
                // Description contains the colour
                String colour = calendarEvents.get(0).getDescription();
                value = imgHTML(COASTAL_IMAGES_DIR+colour+COASTAL_IMAGE_SUFFIX, colourWidth, colourHeight, "images", "class='handCursor'", null);
            }else if(calendarEvents.size() > 1){
                // Might have two vessels going to the same port in the same day
                Set<String> colours = new HashSet<String>();
                for(CalendarEvent event : calendarEvents){
                    // Description contains the colour
                    colours.add(event.getDescription());
                }
                int numberOfPorts = colours.size();
                for(String colour : colours){
                    value += "<div>";
                    value += imgHTML(COASTAL_IMAGES_DIR+colour+COASTAL_IMAGE_SUFFIX, colourWidth, colourHeight/numberOfPorts, "images", "class='handCursor'", null);
                    value += "</div>";
                }
            }else{
                value = defaultMessage != null ? defaultMessage : date.getDate()+"";
            }
        }
        return value;
    }
};

PD:在Chrome和IE的所有版本中代码:

value += "<div>";
                value += imgHTML(COASTAL_IMAGES_DIR+colour+COASTAL_IMAGE_SUFFIX, colourWidth, colourHeight/numberOfPorts, "images", "class='handCursor'", null);
                value += "</div>";

打印确定,在火狐中直到14版本打印好了,但在ff从15到19不打印“div”和“图像”。我已经看到代码抛出firebug和div只是在firefox版本中没有apear(15-19)。

PD:它也不适用于IE 10的上次更新。

2 个答案:

答案 0 :(得分:0)

您是否能够在sample in SmartGWT showcase中看到图标。

截至3月31日,我可以在4月2日,4月3日,4月4日和4月5日看到上面样本中的图标。 此示例中使用的CalendarEvent实例将在当前日期之前的2,3,4和5天创建。

我正在使用FireFox 19.0.2

答案 1 :(得分:0)

最后我发现了这个问题。我不知道为什么但是在重新发布的版本的Firefox中,在14版本之后,gwt日历(v 2.1)会自动重复两次打印日历,所以当它第二次打印时,它没有里面的图像就做了日子。

解决方案:手动创建代码以停止两次打印。