/*******************************************************************************
* Copyright (c) 2011-2012 Nokia Corporation
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Comarch team - initial API and implementation
*******************************************************************************/
package org.ned.client.view.renderer;
import com.sun.lwuit.*;
import com.sun.lwuit.layouts.BoxLayout;
import com.sun.lwuit.list.ListCellRenderer;
import com.sun.lwuit.plaf.Border;
import org.ned.client.NedMidlet;
import org.ned.client.NedResources;
import org.ned.client.transfer.DownloadTask;
import org.ned.client.view.style.NEDStyleToolbox;
public class DownloadTaskCellRenderer extends Container implements ListCellRenderer {
private static Border mSelectedBorder = Border.createBevelLowered( NEDStyleToolbox.BACKGROUND_END_COLOR,
NEDStyleToolbox.BACKGROUND_END_COLOR,
NEDStyleToolbox.BACKGROUND_END_COLOR,
NEDStyleToolbox.BACKGROUND_END_COLOR );
private static Border mUnselectedBorder = Border.createBevelLowered( NEDStyleToolbox.DARK_GREY,
NEDStyleToolbox.DARK_GREY,
NEDStyleToolbox.DARK_GREY,
NEDStyleToolbox.DARK_GREY );
private Label mTitleLabel;
private Label mTransferTitle;
private Label mStatusLabel;
private Label mTransferStatus;
private Label mFileSizeLabel;
private Label mFileSizeStatus;
private Slider mProgressbar;
public DownloadTaskCellRenderer() {
setLayout( new BoxLayout( BoxLayout.Y_AXIS ) );
setCellRenderer( true );
Font resultFont = NedMidlet.getFont( NedResources.LIST_FONT );
Container fileContainer = new Container( new BoxLayout( BoxLayout.X_AXIS ) );
fileContainer.getStyle().setPadding( 0, 0, 0, 0 );
fileContainer.setFocusable( true );
fileContainer.setCellRenderer( true );
mTitleLabel = new Label( NedResources.TRA_TITLE );
mTitleLabel.getStyle().setPadding( 0, 0, 0, 0 );
mTitleLabel.getStyle().setFgColor( NEDStyleToolbox.MAIN_FONT_COLOR );
mTitleLabel.setFocusable( false );
mTitleLabel.setCellRenderer( true );
mTransferTitle = new Label( "" );
mTransferTitle.getStyle().setFont( resultFont );
mTransferTitle.getStyle().setFgColor( NEDStyleToolbox.MAIN_FONT_COLOR );
mTransferTitle.getStyle().setPadding( 0, 0, 0, 0 );
mTransferTitle.setFocusable( false );
mTransferTitle.setCellRenderer( true );
fileContainer.addComponent( mTitleLabel );
fileContainer.addComponent( mTransferTitle );
Container statusContainer = new Container( new BoxLayout( BoxLayout.X_AXIS ) );
statusContainer.getStyle().setPadding( 0, 0, 0, 0 );
statusContainer.setFocusable( false );
statusContainer.setCellRenderer( true );
Container sizeContainer = new Container( new BoxLayout( BoxLayout.X_AXIS ) );
sizeContainer.getStyle().setPadding( 0, 0, 0, 0 );
sizeContainer.setFocusable( true );
sizeContainer.setCellRenderer( true );
mFileSizeLabel = new Label( NedResources.TRA_FILESIZE );
mFileSizeLabel.getStyle().setFgColor( NEDStyleToolbox.MAIN_FONT_COLOR );
mFileSizeLabel.getStyle().setPadding( 0, 0, 0, 0 );
mFileSizeLabel.setFocusable( false );
mFileSizeLabel.setCellRenderer( true );
mFileSizeStatus = new Label( NedResources.TRA_UNKNOWN_SIZE );
mFileSizeStatus.getStyle().setFont( resultFont );
mFileSizeStatus.getStyle().setFgColor( NEDStyleToolbox.MAIN_FONT_COLOR );
mFileSizeStatus.getStyle().setPadding( 0, 0, 0, 0 );
mFileSizeStatus.setFocusable( false );
mFileSizeStatus.setCellRenderer( true );
sizeContainer.addComponent( mFileSizeLabel );
sizeContainer.addComponent( mFileSizeStatus );
mStatusLabel = new Label( NedResources.TRA_STATUS );
mStatusLabel.getStyle().setFgColor( NEDStyleToolbox.MAIN_FONT_COLOR );
mStatusLabel.getStyle().setPadding( 0, 0, 0, 0 );
mStatusLabel.setFocusable( false );
mStatusLabel.setCellRenderer( true );
mTransferStatus = new Label( NedResources.TRA_WAITING_STATUS );
mTransferStatus.getStyle().setFont( resultFont );
mTransferStatus.getStyle().setFgColor( NEDStyleToolbox.MAIN_FONT_COLOR );
mTransferStatus.getStyle().setPadding( 0, 0, 0, 0 );
mTransferStatus.setFocusable( false );
mTransferStatus.setCellRenderer( true );
statusContainer.addComponent( mStatusLabel );
statusContainer.addComponent( mTransferStatus );
mProgressbar = new Slider();
mProgressbar.setFocusable( false );
mProgressbar.setCellRenderer( true );
mProgressbar.setMinValue( 0 );
mProgressbar.setMaxValue( 100 );
mProgressbar.setFocusable( true );
mProgressbar.setIncrements( 1 );
mProgressbar.setEditable( true );
mProgressbar.setRenderPercentageOnTop( true );
mProgressbar.setPreferredH( Font.getDefaultFont().getHeight() );
addComponent( fileContainer );
addComponent( sizeContainer );
addComponent( statusContainer );
addComponent( mProgressbar );
}
public String getUIID() {
return "TransferContainer";
}
public Component getListCellRendererComponent( List list, Object value,
int i, boolean isSelected ) {
if ( value == null ) {
return this;
}
DownloadTask content = (DownloadTask)value;
mTransferTitle.setText( content.getTitle() );
mTransferStatus.setText( content.getStatus() );
mFileSizeStatus.setText( content.getDownloadLength() != 0 ? content.
getDownloadLength() / 1024 + " kB"
: NedResources.TRA_UNKNOWN_SIZE );
mProgressbar.setProgress( content.getPercentDownloadedInt() );
if ( isSelected ) {
setFocus( true );
mTransferTitle.getStyle().setFgColor( NEDStyleToolbox.MAIN_FONT_COLOR );
mTransferStatus.getStyle().setFgColor( NEDStyleToolbox.MAIN_FONT_COLOR );
getStyle().setBorder( mSelectedBorder );
} else {
setFocus( false );
mTransferTitle.getStyle().setFgColor( NEDStyleToolbox.MAIN_FONT_COLOR );
mTransferStatus.getStyle().setFgColor( NEDStyleToolbox.MAIN_FONT_COLOR );
getStyle().setBorder( mUnselectedBorder );
}
return this;
}
public Component getListFocusComponent( List list ) {
return null;
}
}