Search in sources :

Example 46 with Label

use of com.codename1.rad.models.Property.Label in project CodenameOne by codenameone.

the class TestComponent method getComponentAt_int_int_layered.

private void getComponentAt_int_int_layered() {
    Container cnt = new Container(new LayeredLayout());
    Label l = new Label("Hello");
    cnt.add(l);
    cnt.add(new Container(new LayeredLayout()));
    cnt.setWidth(500);
    cnt.setHeight(500);
    cnt.layoutContainer();
    Component found = cnt.getComponentAt(250, 250);
    assertEqual(l, found);
}
Also used : LayeredLayout(com.codename1.ui.layouts.LayeredLayout)

Example 47 with Label

use of com.codename1.rad.models.Property.Label in project CodenameOne by codenameone.

the class SignIn method start.

public void start() {
    // new SignInFormGB(theme).show();
    // if (true) return;
    loginForm = new Form("Sign in Demo");
    loginForm.setLayout(new BorderLayout());
    Container center = new Container(new BoxLayout(BoxLayout.Y_AXIS));
    center.setUIID("ContainerWithPadding");
    Image logo = theme.getImage("CodenameOne.png");
    Label l = new Label(logo);
    Container flow = new Container(new FlowLayout(Component.CENTER));
    flow.addComponent(l);
    center.addComponent(flow);
    final TextField username = new TextField();
    username.setHint("Username");
    final TextField pass = new TextField();
    pass.setHint("Password");
    pass.setConstraint(TextField.PASSWORD);
    center.addComponent(username);
    center.addComponent(pass);
    Button signIn = new Button("Sign In");
    signIn.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent evt) {
            if (username.getText().length() == 0 || pass.getText().length() == 0) {
                return;
            }
            UserForm userForm = new UserForm(username.getText(), (EncodedImage) theme.getImage("user.png"), null);
            userForm.show();
        }
    });
    center.addComponent(signIn);
    loginForm.addComponent(BorderLayout.CENTER, center);
    Container bottom = new Container(new BoxLayout(BoxLayout.Y_AXIS));
    Button loginWFace = new Button(theme.getImage("signin_facebook.png"));
    loginWFace.setUIID("LoginButton");
    loginWFace.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent evt) {
            // create your own app identity on facebook follow the guide here:
            // facebook-login.html
            String clientId = "1171134366245722";
            String redirectURI = "http://www.codenameone.com/";
            String clientSecret = "";
            if (clientSecret.length() == 0) {
                System.err.println("create your own facebook app follow the guide here:");
                System.err.println("http://www.codenameone.com/facebook-login.html");
                return;
            }
            Login fb = FacebookConnect.getInstance();
            fb.setClientId(clientId);
            fb.setRedirectURI(redirectURI);
            fb.setClientSecret(clientSecret);
            login = fb;
            fb.setCallback(new LoginListener(LoginListener.FACEBOOK));
            if (!fb.isUserLoggedIn()) {
                fb.doLogin();
            } else {
                showFacebookUser(fb.getAccessToken().getToken());
            }
        }
    });
    Button loginWG = new Button(theme.getImage("signin_google.png"));
    loginWG.setUIID("LoginButton");
    loginWG.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent evt) {
            SignIn.this.doFirebase();
            // create your own google project follow the guide here:
            // http://www.codenameone.com/google-login.html
            String clientId = "555462747934-iujpd5saj4pjpibo7c6r9tbjfef22rh1.apps.googleusercontent.com";
            String redirectURI = "https://www.codenameone.com/oauth2callback";
            String clientSecret = "650YqplrnAI0KXb9LMUnVNnx";
            if (clientSecret.length() == 0) {
                System.err.println("create your own google project follow the guide here:");
                System.err.println("http://www.codenameone.com/google-login.html");
                return;
            }
            Login gc = GoogleConnect.getInstance();
            gc.setClientId(clientId);
            gc.setRedirectURI(redirectURI);
            gc.setClientSecret(clientSecret);
            gc.setScope("https://www.googleapis.com/auth/plus.profile.emails.read https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file");
            login = gc;
            gc.setCallback(new LoginListener(LoginListener.GOOGLE));
            if (!gc.isUserLoggedIn()) {
                gc.doLogin();
            } else {
                showGoogleUser(gc.getAccessToken().getToken());
            }
        }
    });
    bottom.addComponent(loginWFace);
    bottom.addComponent(loginWG);
    loginForm.addComponent(BorderLayout.SOUTH, bottom);
    loginForm.show();
}
Also used : FlowLayout(com.codename1.ui.layouts.FlowLayout) Form(com.codename1.ui.Form) ActionEvent(com.codename1.ui.events.ActionEvent) BoxLayout(com.codename1.ui.layouts.BoxLayout) Label(com.codename1.ui.Label) Login(com.codename1.social.Login) EncodedImage(com.codename1.ui.EncodedImage) Image(com.codename1.ui.Image) EncodedImage(com.codename1.ui.EncodedImage) Container(com.codename1.ui.Container) BorderLayout(com.codename1.ui.layouts.BorderLayout) ActionListener(com.codename1.ui.events.ActionListener) Button(com.codename1.ui.Button) TextField(com.codename1.ui.TextField)

Example 48 with Label

use of com.codename1.rad.models.Property.Label in project CodenameOne by codenameone.

the class TestNatives method start.

public void start() {
    if (current != null) {
        current.show();
        return;
    }
    Form hi = new Form("Hi World", BoxLayout.y());
    hi.add(new Label("Hi World"));
    Button test = new Button("Test");
    test.addActionListener(e -> {
        MyNativeInterface ni = NativeLookup.create(MyNativeInterface.class);
        System.out.println(Arrays.toString(ni.getBytes()));
        System.out.println(Arrays.toString(ni.getInts()));
        System.out.println(Arrays.toString(ni.getDouble()));
        ni.setBytes(new byte[] { 3, 2, 1 });
        ni.setInts(new int[] { 6, 5, 4 });
        ni.setDoubles(new double[] { 9, 8, 7 });
    });
    hi.add(test);
    hi.show();
}
Also used : Form(com.codename1.ui.Form) Button(com.codename1.ui.Button) Label(com.codename1.ui.Label)

Example 49 with Label

use of com.codename1.rad.models.Property.Label in project CodenameOne by codenameone.

the class TimeChart method drawXLabels.

/**
 * The graphical representation of the labels on the X axis.
 *
 * @param xLabels the X labels values
 * @param xTextLabelLocations the X text label locations
 * @param canvas the canvas to paint to
 * @param paint the paint to be used for drawing
 * @param left the left value of the labels area
 * @param top the top value of the labels area
 * @param bottom the bottom value of the labels area
 * @param xPixelsPerUnit the amount of pixels per one unit in the chart labels
 * @param minX the minimum value on the X axis in the chart
 * @param maxX the maximum value on the X axis in the chart
 */
@Override
protected void drawXLabels(List<Double> xLabels, Double[] xTextLabelLocations, Canvas canvas, Paint paint, int left, int top, int bottom, double xPixelsPerUnit, double minX, double maxX) {
    int length = xLabels.size();
    if (length > 0) {
        boolean showLabels = mRenderer.isShowLabels();
        boolean showGridY = mRenderer.isShowGridY();
        boolean showTickMarks = mRenderer.isShowTickMarks();
        DateFormat format = getDateFormat(xLabels.get(0), xLabels.get(length - 1));
        for (int i = 0; i < length; i++) {
            long label = Math.round(xLabels.get(i));
            float xLabel = (float) (left + xPixelsPerUnit * (label - minX));
            if (showLabels) {
                paint.setColor(mRenderer.getXLabelsColor());
                if (showTickMarks) {
                    canvas.drawLine(xLabel, bottom, xLabel, bottom + mRenderer.getLabelsTextSize() / 3, paint);
                }
                drawText(canvas, format.format(new Date(label)), xLabel, bottom + mRenderer.getLabelsTextSize() * 4 / 3 + mRenderer.getXLabelsPadding(), paint, mRenderer.getXLabelsAngle());
            }
            if (showGridY) {
                paint.setColor(mRenderer.getGridColor(0));
                canvas.drawLine(xLabel, bottom, xLabel, top, paint);
            }
        }
    }
    drawXTextLabels(xTextLabelLocations, canvas, paint, true, left, top, bottom, xPixelsPerUnit, minX, maxX);
}
Also used : SimpleDateFormat(java.text.SimpleDateFormat) DateFormat(java.text.DateFormat) Paint(com.codename1.charts.compat.Paint) Date(java.util.Date)

Example 50 with Label

use of com.codename1.rad.models.Property.Label in project CodenameOne by codenameone.

the class XYChart method draw.

/**
 * The graphical representation of the XY chart.
 *
 * @param canvas the canvas to paint to
 * @param x the top left x value of the view to draw to
 * @param y the top left y value of the view to draw to
 * @param width the width of the view to draw to
 * @param height the height of the view to draw to
 * @param paint the paint
 */
public void draw(Canvas canvas, int x, int y, int width, int height, Paint paint) {
    paint.setAntiAlias(mRenderer.isAntialiasing());
    int legendSize = getLegendSize(mRenderer, height / 5, mRenderer.getAxisTitleTextSize());
    int[] margins = mRenderer.getMargins();
    int left = x + margins[1] + (int) mRenderer.getAxisTitleTextSize() + (mRenderer.isShowLabels() ? (int) mRenderer.getLabelsTextSize() : 0);
    int top = y + margins[0];
    int right = x + width - margins[3];
    int sLength = mDataset.getSeriesCount();
    String[] titles = new String[sLength];
    for (int i = 0; i < sLength; i++) {
        titles[i] = mDataset.getSeriesAt(i).getTitle();
    }
    if (mRenderer.isFitLegend() && mRenderer.isShowLegend()) {
        legendSize = drawLegend(canvas, mRenderer, titles, left, right, y, width, height, legendSize, paint, true);
    }
    int bottom = y + height - margins[2] - legendSize - (int) mRenderer.getAxisTitleTextSize() - (mRenderer.isShowLabels() ? (int) mRenderer.getLabelsTextSize() : 0);
    if (mScreenR == null) {
        mScreenR = new Rectangle();
    }
    mScreenR.setBounds(left, top, right - left, bottom - top);
    drawBackground(mRenderer, canvas, x, y, width, height, paint, false, DefaultRenderer.NO_COLOR);
    if (paint.getTypeface() == null || (mRenderer.getTextTypeface() != null && paint.getTypeface().equals(mRenderer.getTextTypeface())) || !paint.getTypeface().toString().equals(mRenderer.getTextTypefaceName()) || paint.getTypeface().getStyle() != mRenderer.getTextTypefaceStyle()) {
        if (mRenderer.getTextTypeface() != null) {
            paint.setTypeface(mRenderer.getTextTypeface());
        } else {
            paint.setTypeface(Font.createSystemFont(mRenderer.getTextTypefaceName(), mRenderer.getTextTypefaceStyle(), Font.SIZE_SMALL));
        }
    }
    Orientation or = mRenderer.getOrientation();
    if (or == Orientation.VERTICAL) {
        right -= legendSize;
        bottom += legendSize - 20;
    }
    int angle = or.getAngle();
    boolean rotate = angle == 90;
    mScale = (float) (height) / width;
    mTranslate = Math.abs(width - height) / 2;
    if (mScale < 1) {
        mTranslate *= -1;
    }
    mCenter = new Point((x + width) / 2, (y + height) / 2);
    if (rotate) {
        transform(canvas, angle, false);
    }
    int maxScaleNumber = -Integer.MAX_VALUE;
    for (int i = 0; i < sLength; i++) {
        maxScaleNumber = Math.max(maxScaleNumber, mDataset.getSeriesAt(i).getScaleNumber());
    }
    maxScaleNumber++;
    if (maxScaleNumber < 0) {
        return;
    }
    double[] minX = new double[maxScaleNumber];
    double[] maxX = new double[maxScaleNumber];
    double[] minY = new double[maxScaleNumber];
    double[] maxY = new double[maxScaleNumber];
    boolean[] isMinXSet = new boolean[maxScaleNumber];
    boolean[] isMaxXSet = new boolean[maxScaleNumber];
    boolean[] isMinYSet = new boolean[maxScaleNumber];
    boolean[] isMaxYSet = new boolean[maxScaleNumber];
    for (int i = 0; i < maxScaleNumber; i++) {
        minX[i] = mRenderer.getXAxisMin(i);
        maxX[i] = mRenderer.getXAxisMax(i);
        minY[i] = mRenderer.getYAxisMin(i);
        maxY[i] = mRenderer.getYAxisMax(i);
        isMinXSet[i] = mRenderer.isMinXSet(i);
        isMaxXSet[i] = mRenderer.isMaxXSet(i);
        isMinYSet[i] = mRenderer.isMinYSet(i);
        isMaxYSet[i] = mRenderer.isMaxYSet(i);
        if (mCalcRange.get(i) == null) {
            mCalcRange.put(i, new double[4]);
        }
    }
    double[] xPixelsPerUnit = new double[maxScaleNumber];
    double[] yPixelsPerUnit = new double[maxScaleNumber];
    for (int i = 0; i < sLength; i++) {
        XYSeries series = mDataset.getSeriesAt(i);
        int scale = series.getScaleNumber();
        if (series.getItemCount() == 0) {
            continue;
        }
        if (!isMinXSet[scale]) {
            double minimumX = series.getMinX();
            if (minimumX != MathHelper.NULL_VALUE) {
                minX[scale] = minX[scale] == MathHelper.NULL_VALUE ? minimumX : Math.min(minX[scale], minimumX);
                mCalcRange.get(scale)[0] = minX[scale];
            } else {
                minX[scale] = 0;
                mCalcRange.get(scale)[0] = 0;
            }
        }
        if (!isMaxXSet[scale]) {
            double maximumX = series.getMaxX();
            if (maximumX != MathHelper.NULL_VALUE) {
                maxX[scale] = maxX[scale] == MathHelper.NULL_VALUE ? maximumX : Math.max(maxX[scale], maximumX);
                mCalcRange.get(scale)[1] = maxX[scale];
            } else {
                maxX[scale] = minX[scale] + 1;
                mCalcRange.get(scale)[1] = maxX[scale];
            }
        }
        if (!isMinYSet[scale]) {
            double minimumY = series.getMinY();
            if (minimumY != MathHelper.NULL_VALUE) {
                minY[scale] = minY[scale] == MathHelper.NULL_VALUE ? minimumY : Math.min(minY[scale], (float) minimumY);
                mCalcRange.get(scale)[2] = minY[scale];
            } else {
                minY[scale] = 0;
                mCalcRange.get(scale)[2] = 0;
            }
        }
        if (!isMaxYSet[scale]) {
            double maximumY = series.getMaxY();
            if (maximumY != MathHelper.NULL_VALUE) {
                maxY[scale] = maxY[scale] == MathHelper.NULL_VALUE ? maximumY : Math.max(maxY[scale], (float) maximumY);
                mCalcRange.get(scale)[3] = maxY[scale];
            } else {
                maxY[scale] = minY[scale] + 1;
                mCalcRange.get(scale)[3] = maxY[scale];
            }
        }
    }
    for (int i = 0; i < maxScaleNumber; i++) {
        if (maxX[i] - minX[i] != 0) {
            xPixelsPerUnit[i] = (right - left) / (maxX[i] - minX[i]);
        }
        if (maxY[i] - minY[i] != 0) {
            yPixelsPerUnit[i] = (float) ((bottom - top) / (maxY[i] - minY[i]));
        }
        // the X axis on multiple scales was wrong without this fix
        if (i > 0) {
            xPixelsPerUnit[i] = xPixelsPerUnit[0];
            minX[i] = minX[0];
            maxX[i] = maxX[0];
        }
    }
    boolean hasValues = false;
    // use a linked list for these reasons:
    // 1) Avoid a large contiguous memory allocation
    // 2) We don't need random seeking, only sequential reading/writing, so
    // linked list makes sense
    clickableAreas = new HashMap<Integer, List<ClickableArea>>();
    for (int i = 0; i < sLength; i++) {
        XYSeries series = mDataset.getSeriesAt(i);
        int scale = series.getScaleNumber();
        if (series.getItemCount() == 0) {
            continue;
        }
        hasValues = true;
        XYSeriesRenderer seriesRenderer = (XYSeriesRenderer) mRenderer.getSeriesRendererAt(i);
        // int originalValuesLength = series.getItemCount();
        // int valuesLength = originalValuesLength;
        // int length = valuesLength * 2;
        List<Float> points = new ArrayList<Float>();
        List<Double> values = new ArrayList<Double>();
        float yAxisValue = Math.min(bottom, (float) (bottom + yPixelsPerUnit[scale] * minY[scale]));
        LinkedList<ClickableArea> clickableArea = new LinkedList<ClickableArea>();
        clickableAreas.put(i, clickableArea);
        synchronized (series) {
            SortedMap<Double, Double> range = series.getRange(minX[scale], maxX[scale], seriesRenderer.isDisplayBoundingPoints());
            int startIndex = -1;
            for (Double value : range.keySet()) {
                double xValue = value;
                Double rValue = range.get(value);
                double yValue = rValue.doubleValue();
                if (startIndex < 0 && (!isNullValue(yValue) || isRenderNullValues())) {
                    startIndex = series.getIndexForKey(xValue);
                }
                // points.add((float) (left + xPixelsPerUnit[scale]
                // * (value.getKey().floatValue() - minX[scale])));
                // points.add((float) (bottom - yPixelsPerUnit[scale]
                // * (value.getValue().floatValue() - minY[scale])));
                values.add(value);
                values.add(rValue);
                if (!isNullValue(yValue)) {
                    points.add((float) (left + xPixelsPerUnit[scale] * (xValue - minX[scale])));
                    points.add((float) (bottom - yPixelsPerUnit[scale] * (yValue - minY[scale])));
                } else if (isRenderNullValues()) {
                    points.add((float) (left + xPixelsPerUnit[scale] * (xValue - minX[scale])));
                    points.add((float) (bottom - yPixelsPerUnit[scale] * (-minY[scale])));
                } else {
                    if (points.size() > 0) {
                        drawSeries(series, canvas, paint, points, seriesRenderer, yAxisValue, i, or, startIndex);
                        ClickableArea[] clickableAreasForSubSeries = clickableAreasForPoints(points, values, yAxisValue, i, startIndex);
                        clickableArea.addAll(Arrays.asList(clickableAreasForSubSeries));
                        points.clear();
                        values.clear();
                        startIndex = -1;
                    }
                    clickableArea.add(null);
                }
            }
            int count = series.getAnnotationCount();
            if (count > 0) {
                paint.setColor(seriesRenderer.getAnnotationsColor());
                paint.setTextSize(seriesRenderer.getAnnotationsTextSize());
                paint.setTextAlign(seriesRenderer.getAnnotationsTextAlign());
                Rectangle2D bound = new Rectangle2D();
                for (int j = 0; j < count; j++) {
                    float xS = (float) (left + xPixelsPerUnit[scale] * (series.getAnnotationX(j) - minX[scale]));
                    float yS = (float) (bottom - yPixelsPerUnit[scale] * (series.getAnnotationY(j) - minY[scale]));
                    paint.getTextBounds(series.getAnnotationAt(j), 0, series.getAnnotationAt(j).length(), bound);
                    if (xS < (xS + bound.getWidth()) && yS < canvas.getHeight()) {
                        drawString(canvas, series.getAnnotationAt(j), xS, yS, paint);
                    }
                }
            }
            if (points.size() > 0) {
                drawSeries(series, canvas, paint, points, seriesRenderer, yAxisValue, i, or, startIndex);
                ClickableArea[] clickableAreasForSubSeries = clickableAreasForPoints(points, values, yAxisValue, i, startIndex);
                clickableArea.addAll(Arrays.asList(clickableAreasForSubSeries));
            }
        }
    }
    // draw stuff over the margins such as data doesn't render on these areas
    drawBackground(mRenderer, canvas, x, bottom, width, height - bottom, paint, true, mRenderer.getMarginsColor());
    drawBackground(mRenderer, canvas, x, y, width, margins[0], paint, true, mRenderer.getMarginsColor());
    if (or == Orientation.HORIZONTAL) {
        drawBackground(mRenderer, canvas, x, y, left - x, height - y, paint, true, mRenderer.getMarginsColor());
        drawBackground(mRenderer, canvas, right, y, margins[3], height - y, paint, true, mRenderer.getMarginsColor());
    } else if (or == Orientation.VERTICAL) {
        drawBackground(mRenderer, canvas, right, y, width - right, height - y, paint, true, mRenderer.getMarginsColor());
        drawBackground(mRenderer, canvas, x, y, left - x, height - y, paint, true, mRenderer.getMarginsColor());
    }
    boolean showLabels = mRenderer.isShowLabels() && hasValues;
    boolean showGridX = mRenderer.isShowGridX();
    boolean showTickMarks = mRenderer.isShowTickMarks();
    // boolean showCustomTextGridX = mRenderer.isShowCustomTextGridX();
    boolean showCustomTextGridY = mRenderer.isShowCustomTextGridY();
    if (showLabels || showGridX) {
        List<Double> xLabels = getValidLabels(getXLabels(minX[0], maxX[0], mRenderer.getXLabels()));
        Map<Integer, List<Double>> allYLabels = getYLabels(minY, maxY, maxScaleNumber);
        int xLabelsLeft = left;
        if (showLabels) {
            paint.setColor(mRenderer.getXLabelsColor());
            paint.setTextSize(mRenderer.getLabelsTextSize());
            paint.setTextAlign(mRenderer.getXLabelsAlign());
        // if (mRenderer.getXLabelsAlign() == Align.LEFT) {
        // xLabelsLeft += mRenderer.getLabelsTextSize() / 4;
        // }
        }
        drawXLabels(xLabels, mRenderer.getXTextLabelLocations(), canvas, paint, xLabelsLeft, top, bottom, xPixelsPerUnit[0], minX[0], maxX[0]);
        drawYLabels(allYLabels, canvas, paint, maxScaleNumber, left, right, bottom, yPixelsPerUnit, minY);
        if (showLabels) {
            paint.setColor(mRenderer.getLabelsColor());
            for (int i = 0; i < maxScaleNumber; i++) {
                int axisAlign = mRenderer.getYAxisAlign(i);
                Double[] yTextLabelLocations = mRenderer.getYTextLabelLocations(i);
                for (Double location : yTextLabelLocations) {
                    if (minY[i] <= location && location <= maxY[i]) {
                        float yLabel = (float) (bottom - yPixelsPerUnit[i] * (location.doubleValue() - minY[i]));
                        String label = mRenderer.getYTextLabel(location, i);
                        paint.setColor(mRenderer.getYLabelsColor(i));
                        paint.setTextAlign(mRenderer.getYLabelsAlign(i));
                        if (or == Orientation.HORIZONTAL) {
                            if (axisAlign == Align.LEFT) {
                                if (showTickMarks) {
                                    canvas.drawLine(left + getLabelLinePos(axisAlign), yLabel, left, yLabel, paint);
                                }
                                drawText(canvas, label, left - mRenderer.getYLabelsPadding(), yLabel - mRenderer.getYLabelsVerticalPadding(), paint, mRenderer.getYLabelsAngle());
                            } else {
                                if (showTickMarks) {
                                    canvas.drawLine(right, yLabel, right + getLabelLinePos(axisAlign), yLabel, paint);
                                }
                                drawText(canvas, label, right - mRenderer.getYLabelsPadding(), yLabel - mRenderer.getYLabelsVerticalPadding(), paint, mRenderer.getYLabelsAngle());
                            }
                            if (showCustomTextGridY) {
                                paint.setColor(mRenderer.getGridColor(i));
                                canvas.drawLine(left, yLabel, right, yLabel, paint);
                            }
                        } else {
                            if (showTickMarks) {
                                canvas.drawLine(right - getLabelLinePos(axisAlign), yLabel, right, yLabel, paint);
                            }
                            drawText(canvas, label, right + 10, yLabel - mRenderer.getYLabelsVerticalPadding(), paint, mRenderer.getYLabelsAngle());
                            if (showCustomTextGridY) {
                                paint.setColor(mRenderer.getGridColor(i));
                                canvas.drawLine(right, yLabel, left, yLabel, paint);
                            }
                        }
                    }
                }
            }
        }
        if (showLabels) {
            paint.setColor(mRenderer.getLabelsColor());
            float size = mRenderer.getAxisTitleTextSize();
            paint.setTextSize(size);
            paint.setTextAlign(Align.CENTER);
            if (or == Orientation.HORIZONTAL) {
                drawText(canvas, mRenderer.getXTitle(), x + width / 2, bottom + mRenderer.getLabelsTextSize() * 4 / 3 + mRenderer.getXLabelsPadding() + size, paint, 0);
                for (int i = 0; i < maxScaleNumber; i++) {
                    int axisAlign = mRenderer.getYAxisAlign(i);
                    if (axisAlign == Align.LEFT) {
                        drawText(canvas, mRenderer.getYTitle(i), x + size, y + height / 2, paint, -90);
                    } else {
                        drawText(canvas, mRenderer.getYTitle(i), x + width, y + height / 2, paint, -90);
                    }
                }
                paint.setTextSize(mRenderer.getChartTitleTextSize());
                drawText(canvas, mRenderer.getChartTitle(), x + width / 2, y + mRenderer.getChartTitleTextSize(), paint, 0);
            } else if (or == Orientation.VERTICAL) {
                drawText(canvas, mRenderer.getXTitle(), x + width / 2, y + height - size + mRenderer.getXLabelsPadding(), paint, -90);
                drawText(canvas, mRenderer.getYTitle(), right + 20, y + height / 2, paint, 0);
                paint.setTextSize(mRenderer.getChartTitleTextSize());
                drawText(canvas, mRenderer.getChartTitle(), x + size, top + height / 2, paint, 0);
            }
        }
    }
    if (or == Orientation.HORIZONTAL) {
        drawLegend(canvas, mRenderer, titles, left, right, y + (int) mRenderer.getXLabelsPadding(), width, height, legendSize, paint, false);
    } else if (or == Orientation.VERTICAL) {
        transform(canvas, angle, true);
        drawLegend(canvas, mRenderer, titles, left, right, y + (int) mRenderer.getXLabelsPadding(), width, height, legendSize, paint, false);
        transform(canvas, angle, false);
    }
    if (mRenderer.isShowAxes()) {
        paint.setColor(mRenderer.getXAxisColor());
        canvas.drawLine(left, bottom, right, bottom, paint);
        paint.setColor(mRenderer.getYAxisColor());
        boolean rightAxis = false;
        for (int i = 0; i < maxScaleNumber && !rightAxis; i++) {
            rightAxis = mRenderer.getYAxisAlign(i) == Align.RIGHT;
        }
        if (or == Orientation.HORIZONTAL) {
            canvas.drawLine(left, top, left, bottom, paint);
            if (rightAxis) {
                canvas.drawLine(right, top, right, bottom, paint);
            }
        } else if (or == Orientation.VERTICAL) {
            canvas.drawLine(right, top, right, bottom, paint);
        }
    }
    if (rotate) {
        transform(canvas, angle, true);
    }
}
Also used : XYSeries(com.codename1.charts.models.XYSeries) Rectangle(com.codename1.ui.geom.Rectangle) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) List(java.util.List) Rectangle2D(com.codename1.ui.geom.Rectangle2D) Point(com.codename1.charts.models.Point) Orientation(com.codename1.charts.renderers.XYMultipleSeriesRenderer.Orientation) Point(com.codename1.charts.models.Point) Paint(com.codename1.charts.compat.Paint) LinkedList(java.util.LinkedList) XYSeriesRenderer(com.codename1.charts.renderers.XYSeriesRenderer)

Aggregations

Label (com.codename1.ui.Label)129 Form (com.codename1.ui.Form)95 Button (com.codename1.ui.Button)50 BorderLayout (com.codename1.ui.layouts.BorderLayout)50 Container (com.codename1.ui.Container)49 Component (com.codename1.ui.Component)27 SpanLabel (com.codename1.components.SpanLabel)26 Style (com.codename1.ui.plaf.Style)24 BoxLayout (com.codename1.ui.layouts.BoxLayout)19 TextArea (com.codename1.ui.TextArea)18 ActionEvent (com.codename1.ui.events.ActionEvent)18 IOException (java.io.IOException)18 Image (com.codename1.ui.Image)17 Dimension (com.codename1.ui.geom.Dimension)16 TextField (com.codename1.ui.TextField)15 ActionListener (com.codename1.ui.events.ActionListener)15 LayeredLayout (com.codename1.ui.layouts.LayeredLayout)15 Toolbar (com.codename1.ui.Toolbar)13 FlowLayout (com.codename1.ui.layouts.FlowLayout)12 EncodedImage (com.codename1.ui.EncodedImage)11