Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code 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 General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores
* CA 94065 USA or visit www.oracle.com if you need additional information or
* have any questions.
*/
package com.codename1.ui.html;
import com.codename1.ui.Component;
import com.codename1.ui.List;
import com.codename1.xml.ParserCallback;
import com.codename1.ui.TextArea;
import com.codename1.ui.TextField;
import com.codename1.ui.events.ActionEvent;
/**
* HTMLCallback is used to dispatch document lifecycle events.
* Most methods are called on the EDT thread, except parsingError, getAutoComplete and getLinkProperties
*
* @author Ofir Leitner
*/
public interface HTMLCallback extends ParserCallback,CSSParserCallback {
//////////////////////////////////
// Error constants //
//////////////////////////////////
/**
* Error code denoting that a connection to the resource provider/server could not be made
*/
public static int ERROR_CONNECTING = 100;
/**
* Error code denoting that an image referenced from the HTML was not found
*/
public static int ERROR_IMAGE_NOT_FOUND = 101;
/**
* Error code denoting that an image referenced from the HTML could not be loaded
*/
public static int ERROR_IMAGE_BAD_FORMAT = 102;
/**
* Error code denoting that a relative URL was referenced from a document with no base URL (A document that was loaded via setBody/setHTML/setDOM and not via setPage)
* In this case the return value of parsingError is not considered - parsing continues and the resource at the URL (CSS file/image) is ignored
*/
public static int ERROR_NO_BASE_URL = 103;
/**
* Error code denoting that a tag contains tags it shouldn't, or that a tag doesn't have the parent tag it should have
*/
public static int ERROR_INVALID_TAG_HIERARCHY = 104;
//////////////////////////////////
// Page status constants //
//////////////////////////////////
/**
* This is returned in the page status if no page has been set to the HTMLComponent
*/
public static int STATUS_NONE = -3;
/**
* The page couldn't load completely because of parsing errors
*/
public static int STATUS_ERROR = -2;
/**
* The page loading was cancelled before it could be completed
*/
public static int STATUS_CANCELLED = -1;
/**
* The page was requested from the request handler
*/
public static int STATUS_REQUESTED = 0;
/**
* The stream was received
*/
public static int STATUS_CONNECTED = 1;
/**
* The page was parsed
*/
public static int STATUS_PARSED = 2;
/**
* The page was displayed on screen - but at this stage some images and CSS files may still be loading in the background
*/
public static int STATUS_DISPLAYED = 3;
/**
* The page and all of its referenced images and CSS files were loaded completely
*/
public static int STATUS_COMPLETED = 4;
/**
* The page was redirected to another URL
*/
public static int STATUS_REDIRECTED = 5;
//////////////////////////////////
// Field type constants //
//////////////////////////////////
/**
* A text field
*/
public static int FIELD_TEXT = 0;
/**
* A password field
*/
public static int FIELD_PASSWORD = 1;
//////////////////////////////////
// Link property constants //
//////////////////////////////////
/**
* A regular link
*/
public static int LINK_REGULAR = 0;
/**
* A link that was visited before
*/
public static int LINK_VISTED = 1;
/**
* A forbidden link (not to be rendered as a link but as a regular label)
*/
public static int LINK_FORBIDDEN = 2;
//////////////////////////////////
// Interface methods //
//////////////////////////////////
/**
* Called when the page's title is updated
*
* @param htmlC The HTMLComponent that triggered the event
* @param title The new title
*/
public void titleUpdated(HTMLComponent htmlC, String title);
/**
* Called when the page status has been changed
*
* @param htmlC The HTMLComponent in which the status change occured
* @param status The new status, one of the STATUS_* constants
* @param url The URL of the page
*/
public void pageStatusChanged(HTMLComponent htmlC, int status,String url);
/**
* Called whenever a field is submitted to a form.
* This can be used to perform sanity checks and/or to store values for auto complete.
*
* @param htmlC The HTMLComponent in which this event occured
* @param ta The TextArea/TextField of this field
* @param actionURL The action URL of the form
* @param id The ID of the field
* @param value The value entered
* @param type The type of the field, one of the FIELD_* constants
* @param errorMsg The error message if any error occured (i.e. input validation error) or null if no error occured
* @return The string to submit to the form (Should return value if nothing changed)
*/
public String fieldSubmitted(HTMLComponent htmlC,TextArea ta,String actionURL,String id,String value,int type,String errorMsg);
/**
* Called on form creation and enabled implementations of this method to return a value to preset in a form field.
* This can be used to auto complete previously entered value
* Note that this method is always called NOT on the EDT thread.
*
* @param htmlC The HTMLComponent in which this event occured
* @param actionURL The action URL of the form
* @param id The ID of the field
* @return The string to place in the indicated field
*/
public String getAutoComplete(HTMLComponent htmlC,String actionURL,String id);
/**
* Returns properties about the given link to indicate to HTMLComponent how to render it
* Note that this method is always called NOT on the EDT thread.
*
* @param htmlC The HTMLComponent
* @param url The Link URL
* @return LINK_REGULAR or LINK_VISITED or LINK_FORBIDDEN or a mask of those
*/
public int getLinkProperties(HTMLComponent htmlC, String url);
/**
* Called when a link is clicked. This can be used to process links that needs additional/alternate handling than fetching an HTML.
*
* @param htmlC The HTMLComponent
* @param url The Link URL
* @return true if regular link processing should continue, false otherwise
*/
public boolean linkClicked(HTMLComponent htmlC, String url);
//////////////////////
/// Events methods
//////////////////////
/**
* Called whenever an ActionEvent is triggered in one of the controls in the HTMLComponent
* For example, button press, checkbox/radiobutton check etc.
* This method will be called only if HTMLComponent.isEventsEnabled() is true
*
* @param evt The event triggered, the component can be extracted using getSource
* @param htmlC The HTMLComponent
* @param element The element associated with the component that triggered the event
*/
public void actionPerformed(ActionEvent evt,HTMLComponent htmlC, HTMLElement element);
/**
* Called when one of the controls in the HTMLComponent obtained focus
* This method will be called only if HTMLComponent.isEventsEnabled() is true
*
* @param cmp The component that triggered the event
* @param htmlC The HTMLComponent
* @param element The element associated with the component that triggered the event
*/
public void focusGained(Component cmp, HTMLComponent htmlC, HTMLElement element);
/**
* Called when one of the controls in the HTMLComponent lost focus
* This method will be called only if HTMLComponent.isEventsEnabled() is true
*
* @param cmp The component that triggered the event
* @param htmlC The HTMLComponent
* @param element The element associated with the component that triggered the event
*/
public void focusLost(Component cmp, HTMLComponent htmlC, HTMLElement element);
/**
* Called when the user selects an item in a List inside the HTMLComponent
* Note: Selection is traversing through the items - once the user has actually decided, an ActionEvent will be sent as well
* This method will be called only if HTMLComponent.isEventsEnabled() is true
*
* @param oldSelected old selected index in list model
* @param newSelected new selected index in list model
* @param htmlC The HTMLComponent
* @param list The list that triggered the event (Usually a ComboBox but not always)
* @param element The element associated with the component that triggered the event (Should be TAG_SELECT)
*/
public void selectionChanged(int oldSelected, int newSelected, HTMLComponent htmlC, List list, HTMLElement element);
/**
* Called when the user types in a TextField inside the HTMLComponent
* This method will be called only if HTMLComponent.isEventsEnabled() is true
*
* @param type the type data change; REMOVED, ADDED or CHANGED
* @param index item index in a list model
* @param htmlC The HTMLComponent
* @param textField The TextField that triggerd the event
* @param element The element associated with the component that triggered the event (Should be TAG_INPUT with type text/password)
*/
public void dataChanged(int type, int index, HTMLComponent htmlC, TextField textField, HTMLElement element);
}