blob: c64f89b58443368330b70639cb483b4330d86231 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to you 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 org.apache.pivot.tests;
import java.io.File;
import java.nio.charset.Charset;
import org.apache.pivot.collections.ArrayList;
import org.apache.pivot.collections.Map;
import org.apache.pivot.collections.Sequence;
import org.apache.pivot.wtk.Alert;
import org.apache.pivot.wtk.Application;
import org.apache.pivot.wtk.BoxPane;
import org.apache.pivot.wtk.Button;
import org.apache.pivot.wtk.ButtonPressListener;
import org.apache.pivot.wtk.DesktopApplicationContext;
import org.apache.pivot.wtk.Display;
import org.apache.pivot.wtk.FileBrowserSheet;
import org.apache.pivot.wtk.Frame;
import org.apache.pivot.wtk.Label;
import org.apache.pivot.wtk.ListButton;
import org.apache.pivot.wtk.ListView;
import org.apache.pivot.wtk.MessageType;
import org.apache.pivot.wtk.PushButton;
import org.apache.pivot.wtk.Sheet;
import org.apache.pivot.wtk.SheetCloseListener;
import org.apache.pivot.wtk.VerticalAlignment;
import org.apache.pivot.wtk.Window;
import org.apache.pivot.wtk.skin.terra.TerraFileBrowserSheetSkin;
public class FileBrowserWithCharsetTest extends FileBrowserSheet implements Application
{
private ArrayList<String> choices = new ArrayList<String>();
private ListButton lb = new ListButton();
public FileBrowserWithCharsetTest() {
this(Mode.OPEN);
}
public FileBrowserWithCharsetTest(Mode mode) {
super(mode);
TerraFileBrowserSheetSkin skin = (TerraFileBrowserSheetSkin)getSkin();
BoxPane box = new BoxPane();
box.getStyles().put("verticalAlignment", VerticalAlignment.CENTER);
box.add(new Label("Character set:"));
Charset defaultCS = Charset.defaultCharset();
choices.add("US-ASCII");
choices.add(defaultCS.name());
choices.add("ISO-8859-1");
if (!"UTF-8".equals(defaultCS.name()))
choices.add("UTF-8");
lb.setListData(choices);
lb.setSelectedIndex(1);
box.add(lb);
skin.addComponent(box);
}
public String getCharsetName() {
return (String)lb.getSelectedItem();
}
private Frame frame = null;
@Override
public void startup(Display display, Map<String, String> properties) throws Exception
{
BoxPane windowContent = new BoxPane();
PushButton button = new PushButton("Open Sheet");
button.getButtonPressListeners().add(new ButtonPressListener() {
@Override
public void buttonPressed(Button buttonArgument) {
final Window window = FileBrowserWithCharsetTest.getActiveWindow();
final FileBrowserSheet fileBrowserSheet = new FileBrowserWithCharsetTest(FileBrowserSheet.Mode.OPEN);
fileBrowserSheet.open(window, new SheetCloseListener() {
@Override
public void sheetClosed(Sheet sheet) {
if (sheet.getResult()) {
Sequence<File> selectedFiles = fileBrowserSheet.getSelectedFiles();
ListView listView = new ListView();
listView.setListData(new ArrayList<File>(selectedFiles));
listView.setSelectMode(ListView.SelectMode.NONE);
listView.getStyles().put("backgroundColor", null);
Alert.alert(MessageType.INFO, "You selected:", listView, window);
} else {
Alert.alert(MessageType.INFO, "You didn't select anything.", window);
}
}
});
}
});
windowContent.add(button);
frame = new Frame(windowContent);
frame.setMaximized(true);
frame.open(display);
}
@Override
public boolean shutdown(boolean optional) {
if (frame != null) {
frame.close();
}
return false;
}
@Override
public void resume() {
// empty block
}
@Override
public void suspend() {
// empty block
}
public static void main(String[] args) {
DesktopApplicationContext.main(FileBrowserWithCharsetTest.class, args);
}
}