private void initGraphPeriodAndSize(Range range, int width, int height, RrdGraphDef graphDef) { // ending timestamp is the (current) timestamp in seconds // starting timestamp will be adjusted for each graph final long endTime; final long startTime; if (range.getPeriod() == null) { // si endDate à la date du jour, alors on ne dépasse pas l'heure courante endTime = Math.min(range.getEndDate().getTime() / 1000, Util.getTime()); startTime = range.getStartDate().getTime() / 1000; } else { endTime = Util.getTime(); startTime = endTime - range.getPeriod().getDurationSeconds(); } final String label = getLabel(); final String titleStart; if (label.length() > 31 && width <= 200) { // si le label est trop long, on raccourci le titre sinon il ne rentre pas titleStart = label; } else { titleStart = label + " - " + range.getLabel(); } final String titleEnd; if (width > 400) { if (range.getPeriod() == null) { titleEnd = " - " + I18N.getFormattedString("sur", getApplication()); } else { titleEnd = " - " + I18N.getCurrentDate() + ' ' + I18N.getFormattedString("sur", getApplication()); } } else { titleEnd = ""; if (range.getPeriod() == null) { // si période entre 2 dates et si pas de zoom, // alors on réduit de 2 point la fonte du titre pour qu'il rentre dans le cadre graphDef.setLargeFont( graphDef.getLargeFont().deriveFont(graphDef.getLargeFont().getSize2D() - 2f)); } } graphDef.setStartTime(startTime); graphDef.setEndTime(endTime); graphDef.setTitle(titleStart + titleEnd); graphDef.setFirstDayOfWeek(Calendar.getInstance(I18N.getCurrentLocale()).getFirstDayOfWeek()); // or if the user locale patch is merged we should do: // (https://sourceforge.net/tracker/?func=detail&aid=3403733&group_id=82668&atid=566807) // graphDef.setLocale(I18N.getCurrentLocale()); // rq : la largeur et la hauteur de l'image sont plus grandes que celles fournies // car jrobin ajoute la largeur et la hauteur des textes et autres graphDef.setWidth(width); graphDef.setHeight(height); if (width <= 100) { graphDef.setNoLegend(true); graphDef.setUnitsLength(0); graphDef.setShowSignature(false); graphDef.setTitle(null); } // graphDef.setColor(RrdGraphConstants.COLOR_BACK, new GradientPaint(0, 0, // RrdGraphConstants.DEFAULT_BACK_COLOR.brighter(), 0, height, // RrdGraphConstants.DEFAULT_BACK_COLOR)); }
String getLabel() { if (requestName == null) { // c'est un jrobin global issu soit de JavaInformations soit d'un Counter dans le Collector return I18N.getString(getName()); } // c'est un jrobin issu d'un CounterRequest dans le Collector final String shortRequestName = requestName.substring(0, Math.min(30, requestName.length())); // plus nécessaire: if (getName().startsWith("error")) { // c'est un jrobin issu d'un CounterRequest du Counter "error" // return I18N.getString("Erreurs_par_minute_pour") + ' ' + shortRequestName; } return I18N.getFormattedString("Temps_moyens_de", shortRequestName); }