/*
This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2010 Servoy BV
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option) any
later version.
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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along
with this program; if not, see http://www.gnu.org/licenses or write to the Free
Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
*/
package com.servoy.j2db.preference;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import com.servoy.j2db.IApplication;
import com.servoy.j2db.smart.J2DBClient;
import com.servoy.j2db.util.Utils;
/**
* Panel from some general client preferences
* @author jblok
*/
public class GeneralPanel extends PreferencePanel
{
protected JPanel namePanel;
protected JPanel fieldPanel;
private JCheckBox useSystemPrintDialog;
protected final IApplication application;
public GeneralPanel(IApplication application)
{
super(new BorderLayout());
this.application = application;
namePanel = new JPanel(new GridLayout(0, 1, J2DBClient.BUTTON_SPACING, J2DBClient.BUTTON_SPACING));
fieldPanel = new JPanel(new GridLayout(0, 1, J2DBClient.BUTTON_SPACING, J2DBClient.BUTTON_SPACING));
namePanel.add(new JLabel("")); //$NON-NLS-1$
fieldPanel.add(useSystemPrintDialog = new JCheckBox(application.getI18NMessage("servoy.preference.general.useSystemPrintDialog"))); //$NON-NLS-1$
//by default we use old system for mac,new is not working
useSystemPrintDialog.setSelected(Utils.getAsBoolean(application.getSettings().getProperty("useSystemPrintDialog", "" + Utils.isAppleMacOS()))); //$NON-NLS-1$//$NON-NLS-2$
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(namePanel, BorderLayout.WEST);
panel.add(fieldPanel, BorderLayout.CENTER);
add(panel, BorderLayout.NORTH);
}
private ChangeListener listener;
@Override
public void addChangeListener(ChangeListener l)
{
listener = l;
}
protected void fireChangeEvent()
{
changed = true;
listener.stateChanged(new ChangeEvent(this));
}
private boolean changed = false;
@Override
public int getRequiredUserAction()
{
int retval = PreferencePanel.NO_USER_ACTION_REQUIRED;
if (changed)
{
retval = PreferencePanel.SOLUTION_RELOAD_NEEDED;
}
changed = false;
return retval;
}
@Override
public boolean handleCancel()
{
return true;
}
@Override
public boolean handleOK()
{
application.getSettings().setProperty("useSystemPrintDialog", Boolean.toString(useSystemPrintDialog.isSelected())); //$NON-NLS-1$
return true;
}
@Override
public String getTabName()
{
return application.getI18NMessage("servoy.preference.general.tabName"); //$NON-NLS-1$
}
}