/*
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
*
* Copyright @ 2015 Atlassian Pty Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package net.java.sip.communicator.plugin.jabberaccregwizz;
import java.awt.*;
import net.java.sip.communicator.plugin.desktoputil.*;
import net.java.sip.communicator.service.gui.*;
import net.java.sip.communicator.service.protocol.*;
/**
* The <tt>FirstWizardPage</tt> is the page, where user could enter the user
* ID and the password of the account.
*
* @author Yana Stamcheva
* @author Damian Minkov
*/
public class FirstWizardPage
extends TransparentPanel
implements WizardPage
{
/**
* Serial version UID.
*/
private static final long serialVersionUID = 0L;
/**
* Identifier of the first page.
*/
public static final String FIRST_PAGE_IDENTIFIER = "FirstPageIdentifier";
private Object nextPageIdentifier = WizardPage.SUMMARY_PAGE_IDENTIFIER;
private final JabberAccountRegistrationWizard wizard;
private final JabberAccountRegistrationForm registrationForm;
private boolean isCommitted = false;
/**
* Creates an instance of <tt>FirstWizardPage</tt>.
*
* @param wizard the parent wizard
*/
public FirstWizardPage(JabberAccountRegistrationWizard wizard)
{
super(new BorderLayout());
this.wizard = wizard;
this.registrationForm = new JabberAccountRegistrationForm(wizard);
this.add(registrationForm);
}
/**
* Implements the <code>WizardPage.getIdentifier</code> to return this
* page identifier.
*
* @return the id of the first wizard page.
*/
public Object getIdentifier()
{
return FIRST_PAGE_IDENTIFIER;
}
/**
* Implements the <code>WizardPage.getNextPageIdentifier</code> to return
* the next page identifier - the summary page.
*
* @return the id of the next wizard page.
*/
public Object getNextPageIdentifier()
{
return nextPageIdentifier;
}
/**
* Implements the <code>WizardPage.getBackPageIdentifier</code> to return
* the back identifier. In this case it's null because this is the first
* wizard page.
*
* @return the identifier of the previous wizard page
*/
public Object getBackPageIdentifier()
{
return null;
}
/**
* Implements the <code>WizardPage.getWizardForm</code> to return this
* panel.
*
* @return this wizard page.
*/
public Object getWizardForm()
{
registrationForm.init();
return this;
}
/**
* Before this page is displayed enables or disables the "Next" wizard
* button according to whether the User ID field is empty.
*/
public void pageShowing()
{
wizard.getWizardContainer().setBackButtonEnabled(false);
}
/**
* Saves the user input when the "Next" wizard buttons is clicked.
*/
public void commitPage()
{
isCommitted
= registrationForm.commitPage(wizard.getRegistration());
nextPageIdentifier = SUMMARY_PAGE_IDENTIFIER;
}
public void pageHiding() {}
/**
* Dummy implementation
*/
public void pageShown() {}
/**
* Dummy implementation
*/
public void pageBack() {}
/**
* Fills the User ID and Password fields in this panel with the data coming
* from the given protocolProvider.
*
* @param protocolProvider The <tt>ProtocolProviderService</tt> to load
* the data from.
*/
public void loadAccount(ProtocolProviderService protocolProvider)
{
registrationForm.setModification(wizard.isModification());
// Loads account properties into registration object
wizard.getRegistration()
.loadAccount(protocolProvider.getAccountID(),
JabberAccRegWizzActivator.bundleContext);
// Initialize registration form
registrationForm.loadAccount(wizard.getRegistration());
}
/**
* Returns the simple form.
* @return the simple form
*/
public Object getSimpleForm()
{
return registrationForm.getSimpleForm();
}
/**
* Indicates if this page has been already committed.
* @return <tt>true</tt> if this page has been already committed,
* <tt>false</tt> - otherwise
*/
public boolean isCommitted()
{
return isCommitted;
}
}