package org.limewire.ui.swing.options;
import javax.swing.BorderFactory;
import javax.swing.JCheckBox;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
import org.limewire.core.settings.ApplicationSettings;
import org.limewire.ui.swing.components.MultiLineLabel;
import org.limewire.ui.swing.util.I18n;
import com.google.inject.Inject;
/**
* External Access view for Advanced Options.
*/
class ExternalAccessOptionPanel extends OptionPanel {
private MultiLineLabel localAccessLabel;
private JCheckBox localAccessCheckBox;
/**
* Constructs an ExternalAccessOptionPanel.
*/
@Inject
public ExternalAccessOptionPanel() {
setLayout(new MigLayout("hidemode 3, insets 15, fillx, wrap"));
setOpaque(false);
add(getAccessPanel(), "pushx, growx");
}
/**
* Returns the container for access options.
*/
private JPanel getAccessPanel() {
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createTitledBorder(""));
panel.setLayout(new MigLayout("fillx"));
panel.setOpaque(false);
localAccessLabel = new MultiLineLabel();
localAccessLabel.setMaxLineSpan(AdvancedOptionPanel.MULTI_LINE_LABEL_WIDTH);
localAccessLabel.setText(I18n.tr("LimeWire can allow other processes to make use of its services, like search and download, via a REST interface."));
localAccessCheckBox = new JCheckBox(I18n.tr("Enable local access to REST service"));
localAccessCheckBox.setOpaque(false);
panel.add(localAccessLabel, "growx, wrap");
panel.add(localAccessCheckBox, "gapleft 25, wrap");
return panel;
}
@Override
ApplyOptionResult applyOptions() {
ApplicationSettings.LOCAL_REST_ACCESS_ENABLED.setValue(localAccessCheckBox.isSelected());
return new ApplyOptionResult(false, true);
}
@Override
boolean hasChanged() {
return localAccessCheckBox.isSelected() != ApplicationSettings.LOCAL_REST_ACCESS_ENABLED.getValue();
}
@Override
public void initOptions() {
localAccessCheckBox.setSelected(ApplicationSettings.LOCAL_REST_ACCESS_ENABLED.getValue());
}
}