/*!
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright (c) 2002-2013 Pentaho Corporation.. All rights reserved.
*/
package org.pentaho.gwt.widgets.samples;
import com.allen_sauer.gwt.dnd.client.DragContext;
import com.allen_sauer.gwt.dnd.client.DragController;
import com.allen_sauer.gwt.dnd.client.PickupDragController;
import com.allen_sauer.gwt.dnd.client.VetoDragException;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import org.pentaho.gwt.widgets.client.controls.ColorPicker;
import org.pentaho.gwt.widgets.client.controls.ColorPickerListener;
import org.pentaho.gwt.widgets.client.listbox.CustomListBox;
import org.pentaho.gwt.widgets.client.listbox.DefaultListItem;
import org.pentaho.gwt.widgets.client.ui.Draggable;
/**
* Created by IntelliJ IDEA. User: Nick Baker Date: Mar 9, 2009 Time: 12:54:29 PM
*/
@SuppressWarnings( "nls" )
public class SampleApp implements EntryPoint {
@SuppressWarnings( "deprecation" )
public void onModuleLoad() {
DragController dragController = new PickupDragController( RootPanel.get(), false ) {
{
setBehaviorDragProxy( true );
setBehaviorDragStartSensitivity( 5 );
}
private Widget proxy;
@Override
protected void restoreSelectedWidgetsStyle() {
}
@Override
protected void saveSelectedWidgetsLocationAndStyle() {
}
@Override
protected void restoreSelectedWidgetsLocation() {
}
@Override
public void dragStart() {
super.dragStart();
}
@Override
public void dragEnd() {
proxy.removeFromParent();
proxy = null;
}
@Override
protected Widget newDragProxy( DragContext context ) {
proxy = ( (Draggable) context.draggable ).makeProxy( context.draggable );
return proxy;
}
@Override
public void previewDragEnd() throws VetoDragException {
}
};
final CustomListBox list = new CustomListBox();
list.setDragController( dragController );
list.addItem( "Alberta" );
list.addItem( "Atlanta" );
list.addItem( "San Francisco" );
list.addItem( "Alberta" );
list.addItem( "Atlanta" );
list.addItem( "San Francisco" );
list.addItem( "Alberta" );
list.addItem( "Atlanta" );
list.addItem( "San Francisco" );
list.addItem( "Alberta" );
list.addItem( new DefaultListItem( "Testing", new Image( "16x16sample.png" ) ) );
list.addItem( new DefaultListItem( "Testing 2", new CheckBox() ) );
// list.setVisibleRowCount(6);
list.addChangeListener( new ChangeListener() {
public void onChange( Widget widget ) {
System.out.println( "" + list.getSelectedIndex() );
}
} );
list.setWidth( "100%" );
list.setHeight( "100%" );
// RootPanel.get().add(new Label("Combo: "));
// RootPanel.get().add(list);
final CustomListBox list2 = new CustomListBox();
list2.setDragController( dragController );
list2.addItem( "Alberta" );
list2.addItem( "Atlanta" );
list2.addItem( "San Francisco" );
list2.addItem( "Alberta" );
list2.addItem( "Atlanta" );
list2.addItem( "San Francisco" );
list2.addItem( "Alberta" );
list2.addItem( "Atlanta" );
list2.addItem( "San Francisco" );
list2.addItem( "Alberta" );
list2.addItem( "Atlanta" );
list2.addItem( "San Francisco" );
list2.add( "Alberta" );
list2.add( "Atlanta" );
list2.add( "San Francisco" );
list2.add( "Alberta" );
list2.add( "Atlanta" );
list2.add( "San Francisco" );
list2.add( new DefaultListItem( "Testing", new Image( "16x16sample.png" ) ) );
list2.addItem( new DefaultListItem( "Testing 2", new CheckBox() ) );
list2.setVisibleRowCount( 6 );
// list2.setEditable(true);
list2.setValue( "Bogus" );
list2.setMultiSelect( true );
final Label selected = new Label();
list2.addChangeListener( new ChangeListener() {
@Override
public void onChange( Widget widget ) {
int[] sels = list2.getSelectedIndices();
selected.setText( "" );
for ( int i = 0; i < sels.length; i++ ) {
selected.setText( selected.getText() + ", " + sels[i] );
}
}
} );
RootPanel.get().add( new Label( "" ) );
RootPanel.get().add( new Label( "Combo2: " ) );
RootPanel.get().add( list2 );
RootPanel.get().add( selected );
CustomListBox list3 = new CustomListBox();
DefaultListItem dli = null;
dli = new DefaultListItem( "Testing 1", new Image( "16x16sample.png" ) );
dli.setValue( "Value of Testing 1" );
list3.add( dli );
dli = new DefaultListItem( "Testing 2", new CheckBox() );
dli.setValue( "Value of Testing 2" );
list3.add( dli );
// RootPanel.get().add(new Label(""));
// RootPanel.get().add(new Label("Combo3: "));
// RootPanel.get().add(list3);
Label showSelectedLabel = new Label( "Selected item's value:" );
final TextBox showSelectedTextBox = new TextBox();
showSelectedTextBox.setReadOnly( true );
list3.addChangeListener( new ChangeListener() {
public void onChange( Widget widget ) {
String val = (String) ( (CustomListBox) widget ).getSelectedItem().getValue();
if ( val != null ) {
showSelectedTextBox.setText( val );
}
}
} );
final CustomListBox list4 = new CustomListBox();
list4.addItem( "Albert" );
list4.addItem( "Greg" );
list4.setWidth( "170px" );
RootPanel.get().add( new Label( "" ) );
RootPanel.get().add( new Label( "Combo4: " ) );
RootPanel.get().add( list4 );
RootPanel.get().add( showSelectedLabel );
RootPanel.get().add( showSelectedTextBox );
final ColorPicker picker = new ColorPicker();
picker.addColorPickerListener( new ColorPickerListener() {
public void colorPicked( ColorPicker picker ) {
System.out.println( "color: " + picker.getColor() );
}
} );
RootPanel.get().add( picker );
Button btn = new Button( "colorPicker" );
RootPanel.get().add( btn );
btn.addClickHandler( new ClickHandler() {
public void onClick( ClickEvent event ) {
picker.showPicker();
}
} );
}
}