package com.ssdi.test.client;


import java.util.LinkedHashMap;

/* 
 * Smart GWT (GWT for SmartClient) 
 * Copyright 2008 and beyond, Isomorphic Software, Inc. 
 * 
 * Smart GWT is free software; you can redistribute it and/or modify it 
 * under the terms of the GNU Lesser General Public License version 3 
 * as published by the Free Software Foundation.  Smart GWT is also 
 * available under typical commercial license terms - see 
 * http://smartclient.com/license 
 * 
 * This software 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. 
 */  
  
import com.google.gwt.core.client.EntryPoint;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.types.Overflow;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.ImgButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.SelectItem;
import com.smartgwt.client.widgets.form.fields.events.ChangedEvent;
import com.smartgwt.client.widgets.form.fields.events.ChangedHandler;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.HLayout;


public class ImageIssue implements EntryPoint {  
  
    public void onModuleLoad() {  
    	
  
        final ListGrid countryGrid = new ListGrid() {  
            @Override  
            protected Canvas createRecordComponent(final ListGridRecord record, Integer colNum) {  
  
                String fieldName = this.getFieldName(colNum);  
  
                if(fieldName.equalsIgnoreCase("continent"))
                {
                	LinkedHashMap<String, String> reportFormatMap = new LinkedHashMap<String, String>();
                	
                	 HLayout recordCanvas = new HLayout();
    			     recordCanvas.setHeight(25);
    			     recordCanvas.setWidth("100%");
    			     recordCanvas.setOverflow(Overflow.HIDDEN);

    	          String recordReportFormat = record.getAttribute("continent");
    	          SelectItem  reportFormatType = new SelectItem();
    	          reportFormatType.setWidth(100);
    	          reportFormatType.setName("reportFormat");
    	          
    	          reportFormatMap.put("pdf", "PDF");
    	          reportFormatMap.put("html", "HTML");
    	          reportFormatMap.put("csv", "CSV");
    	          reportFormatType.setValueMap(reportFormatMap);
    	          reportFormatType.setValue(recordReportFormat);
    	          reportFormatType.setShowTitle(false);
    	          reportFormatType.addChangedHandler(new ChangedHandler() {
    				
    				@Override
    				public void onChanged(ChangedEvent event) {
    					 record.setAttribute("continent", event.getValue().toString());
    					
    				}
    			});
    	          
    	         DynamicForm reportFormatForm = new DynamicForm();
    	         
    	         reportFormatForm.setItems(reportFormatType);
    	          recordCanvas.setMembers(reportFormatForm);
    	          return recordCanvas;
                }

	       
	        
                
                
                if (fieldName.equals("iconField")) {  
                    HLayout recordCanvas = new HLayout(3);  
                    recordCanvas.setHeight(22);  
                    recordCanvas.setWidth100();  
                    recordCanvas.setAlign(Alignment.CENTER);  
                     
  
                    IButton viewButton = new IButton();
					viewButton.setTitle("view");
					viewButton.setHeight(20);
					viewButton.setAutoFit(true);
					
					IButton sendEmailButton = new IButton();
					sendEmailButton.setTitle("E-Mail");
					sendEmailButton.setHeight(20);
					sendEmailButton.setAutoFit(true);
					
					IButton downloadButton = new IButton();
					downloadButton.setTitle("Download");
					downloadButton.setHeight(20);
					downloadButton.setAutoFit(true);
                 
  
                    recordCanvas.addMembers(viewButton,sendEmailButton,downloadButton); 
                   
                    return recordCanvas;  
                } else if (fieldName.equals("buttonField")) {  
                    IButton button = new IButton();  
                    button.setHeight(26);  
                    button.setWidth(70);                      
                    button.setIcon("Group_Settings.png" + record.getAttribute("countryCode") + ".png");  
                    button.setTitle("Info");  
                    button.addClickHandler(new ClickHandler() {  
                        public void onClick(ClickEvent event) {  
                            SC.say(record.getAttribute("capital") + " info button clicked.");  
                        }  
                    });  
                    return button;  
                } 
                else if(fieldName.equals("countryCode"))
                {
                    ImgButton flag = new ImgButton();  
                    flag.setShowDown(false);  
                    flag.setShowRollOver(false);  
                    flag.setAlign(Alignment.CENTER);  
                    flag.setSrc("Group_Settings.png");  
                    flag.setPrompt("View Chart");  
                    flag.setHeight(16);  
                    flag.setWidth(16);  
                    flag.addClickHandler(new ClickHandler() {  
                        public void onClick(ClickEvent event) {  
                            SC.say("Chart Icon Clicked for country : " + record.getAttribute("countryName"));  
                        }  
                    }); 
                    return flag;  
                }
                else {  
                    return null;  
                }  
  
            }  
        };  
        countryGrid.setWidth(600);  
        countryGrid.setHeight(224);  
  
        countryGrid.setVirtualScrolling(false);          
        countryGrid.setShowRecordComponents(true);          
        countryGrid.setShowRecordComponentsByCell(true);  
        countryGrid.setCanRemoveRecords(true);  
  
        ListGridField countryCodeField = new ListGridField("countryCode", "Flag", 40);  
        countryCodeField.setAlign(Alignment.CENTER);  
        countryCodeField.setType(ListGridFieldType.IMAGE);  
        countryCodeField.setImageURLPrefix("save");  
        countryCodeField.setImageURLSuffix(".png");  
  
        ListGridField nameField = new ListGridField("countryName", "Country");  
        ListGridField capitalField = new ListGridField("capital", "Capital");  
        ListGridField continentField = new ListGridField("continent", "Continent");  
  
        ListGridField buttonField = new ListGridField("buttonField", "Info");  
        buttonField.setAlign(Alignment.CENTER);  
          
        ListGridField iconField = new ListGridField("iconField", "Comments/Stats");  
        iconField.setWidth(120);  
  
        
        ListGridField Policece = new ListGridField("Article", "Policee");  
        iconField.setWidth(120); 
        
        countryGrid.setFields(countryCodeField, nameField, capitalField, continentField, buttonField, iconField,Policece);  
        countryGrid.setCanResizeFields(true);  
        countryGrid.setData(ImageIssueData.getRecords());  
  
        countryGrid.draw();  
    }  
  
}  