1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 10:19:33 +02:00

unused code has been removed

This commit is contained in:
Nikolay Pultsin 2010-11-26 03:51:04 +00:00
parent 0bf87697a7
commit 6a25dd54e9
17 changed files with 0 additions and 1158 deletions

View file

@ -25,7 +25,6 @@ import android.preference.PreferenceScreen;
import org.geometerplus.zlibrary.core.options.ZLIntegerOption;
import org.geometerplus.zlibrary.core.options.ZLIntegerRangeOption;
import org.geometerplus.zlibrary.core.optionEntries.ZLColorOptionBuilder;
import org.geometerplus.zlibrary.core.resources.ZLResource;
import org.geometerplus.zlibrary.text.view.style.*;

View file

@ -1,36 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.core.dialogs;
import org.geometerplus.zlibrary.core.util.ZLColor;
public abstract class ZLColorOptionEntry extends ZLOptionEntry {
protected ZLColorOptionEntry() {
}
public void onReset(ZLColor color) {
}
public abstract ZLColor initialColor();
public abstract ZLColor getColor();
public abstract void onAccept(ZLColor color);
}

View file

@ -1,62 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.core.dialogs;
import java.util.*;
public abstract class ZLComboOptionEntry extends ZLOptionEntry {
private final boolean myEditable;
protected ZLComboOptionEntry() {
myEditable = false;
}
protected ZLComboOptionEntry(boolean editable) {
myEditable = editable;
}
public void onValueSelected(int index) {}
public final void onStringValueSelected(String value) {
int index = getValues().indexOf(value);
if (index != -1) {
onValueSelected(index);
}
}
public boolean useOnValueEdited() {
return false;
}
public void onValueEdited(String value) {}
public final boolean isEditable() {
return myEditable;
}
public abstract String initialValue();
public abstract ArrayList<String> getValues();
public abstract void onAccept(String value);
public void onReset() {
}
}

View file

@ -1,75 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.core.dialogs;
import java.util.*;
import org.geometerplus.zlibrary.core.resources.ZLResource;
public abstract class ZLDialogContent {
private final ZLResource myResource;
protected final ArrayList<ZLOptionView> Views = new ArrayList<ZLOptionView>();
protected ZLDialogContent(ZLResource resource) {
myResource = resource;
}
public final String getKey() {
return myResource.Name;
}
public final String getDisplayName() {
return myResource.getValue();
}
public final String getValue(String key) {
return myResource.getResource(key).getValue();
}
public final ZLResource getResource(String key) {
return myResource.getResource(key);
}
public abstract void addOptionByName(String name, ZLOptionEntry option);
public final void addOption(String key, ZLOptionEntry option) {
addOptionByName(myResource.getResource(key).getValue(), option);
}
protected final void accept() {
final int size = Views.size();
for (int i = 0; i < size; i++) {
Views.get(i).onAccept();
}
}
final void reset() {
final int size = Views.size();
for (int i = 0; i < size; i++) {
Views.get(i).reset();
}
}
protected final void addView(ZLOptionView view) {
if (view != null) {
Views.add(view);
}
}
}

View file

@ -24,8 +24,6 @@ import org.geometerplus.zlibrary.core.resources.ZLResource;
public abstract class ZLDialogManager {
protected static ZLDialogManager ourInstance;
public static final String COLOR_KEY = "color";
protected ZLDialogManager() {
ourInstance = this;
}
@ -35,8 +33,4 @@ public abstract class ZLDialogManager {
}
public abstract void wait(String key, Runnable runnable);
protected static ZLResource getResource() {
return ZLResource.resource("dialog");
}
}

View file

@ -1,34 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.core.dialogs;
public abstract class ZLOptionEntry {
private ZLOptionView myView;
public final void setView(ZLOptionView view) {
myView = view;
}
public final void resetView() {
if (myView != null) {
myView.reset();
}
}
}

View file

@ -1,50 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.core.dialogs;
public abstract class ZLOptionView {
protected final String myName;
protected final ZLOptionEntry myOption;
private boolean myInitialized;
protected ZLOptionView(String name, ZLOptionEntry option) {
myName = name;
myOption = option;
myInitialized = false;
myOption.setView(this);
}
protected abstract void reset();
public final void setVisible() {
myInitialized = true;
show();
}
protected abstract void show();
public final void onAccept() {
if (myInitialized) {
_onAccept();
}
}
protected abstract void _onAccept();
}

View file

@ -1,56 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.core.dialogs;
import java.util.*;
import org.geometerplus.zlibrary.core.resources.ZLResource;
public abstract class ZLOptionsDialog {
private final ZLResource myResource;
protected final ArrayList<ZLDialogContent> myTabs = new ArrayList<ZLDialogContent>();
protected ZLOptionsDialog(ZLResource resource) {
myResource = resource;
}
protected void acceptTab(ZLDialogContent tab) {
tab.accept();
}
protected void resetTab(ZLDialogContent tab) {
tab.reset();
}
protected void accept() {
final int size = myTabs.size();
for (int i = 0; i < size; i++) {
myTabs.get(i).accept();
}
}
protected final ZLResource getTabResource(String key) {
return myResource.getResource("tab").getResource(key);
}
public abstract ZLDialogContent createTab(String key);
public abstract void run(int index);
}

View file

@ -1,127 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.core.optionEntries;
import java.util.*;
import org.geometerplus.zlibrary.core.options.ZLColorOption;
import org.geometerplus.zlibrary.core.util.*;
import org.geometerplus.zlibrary.core.dialogs.*;
public class ZLColorOptionBuilder {
private ZLColorOptionsData myData;
public ZLColorOptionBuilder() {
myData = new ZLColorOptionsData();
myData.myComboEntry = new ZLColorComboOptionEntry(myData);
myData.myColorEntry = new ZLMultiColorOptionEntry(myData);
}
public void addOption(final String name, ZLColorOption option) {
myData.myOptionNames.add(name);
myData.myCurrentColors.put(name, option.getValue());
myData.myOptions.put(name, option);
}
public void setInitial(final String name) {
myData.myCurrentOptionName = name;
myData.myPreviousOptionName = name;
}
public ZLOptionEntry comboEntry() {
return myData.myComboEntry;
}
public ZLOptionEntry colorEntry() {
return myData.myColorEntry;
}
private static class ZLMultiColorOptionEntry extends ZLColorOptionEntry {
private ZLColorOptionsData myData;
public ZLMultiColorOptionEntry(ZLColorOptionsData data) {
myData = data;
}
public ZLColor getColor() {
ZLColor color = myData.myCurrentColors.get(myData.myCurrentOptionName);
return (color != null) ? color : initialColor();
}
public ZLColor initialColor() {
return myData.myOptions.get(myData.myCurrentOptionName).getValue();
}
public void onAccept(ZLColor color) {
onReset(color);
final ArrayList<String> optionNames = myData.myOptionNames;
final HashMap<String,ZLColorOption> options = myData.myOptions;
final HashMap<String,ZLColor> colors = myData.myCurrentColors;
final int len = optionNames.size();
for (int i = 0; i < len; i++) {
String name = optionNames.get(i);
options.get(name).setValue(colors.get(name));
}
}
public void onReset(ZLColor color) {
myData.myCurrentColors.put(myData.myPreviousOptionName, color);
}
}
private static class ZLColorComboOptionEntry extends ZLComboOptionEntry {
private ZLColorOptionsData myData;
public ZLColorComboOptionEntry(ZLColorOptionsData data) {
myData = data;
}
public ArrayList<String> getValues() {
return myData.myOptionNames;
}
public String initialValue() {
return myData.myCurrentOptionName;
}
public void onAccept(String value) {}
public void onReset() {
myData.myCurrentColors.clear();
}
public void onValueSelected(int index) {
myData.myCurrentOptionName = getValues().get(index);
myData.myColorEntry.resetView();
myData.myPreviousOptionName = myData.myCurrentOptionName;
}
}
private static class ZLColorOptionsData {
private ZLComboOptionEntry myComboEntry;
private ZLColorOptionEntry myColorEntry;
private String myCurrentOptionName;
private String myPreviousOptionName;
private final ArrayList<String> myOptionNames = new ArrayList<String>();
private final HashMap<String,ZLColor> myCurrentColors = new HashMap<String,ZLColor>();
private final HashMap<String,ZLColorOption> myOptions = new HashMap<String,ZLColorOption>();
}
}

View file

@ -1,43 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.ui.android.dialogs;
import android.app.Activity;
import android.os.Bundle;
import org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication;
public class DialogActivity extends Activity {
static final Object DIALOG_KEY = new Object();
private ZLAndroidDialogInterface myDialog;
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
final ZLAndroidApplication application = (ZLAndroidApplication)getApplication();
myDialog = (ZLAndroidDialogInterface)application.getData(DIALOG_KEY);
myDialog.setActivity(this);
}
protected void onDestroy() {
myDialog.endActivity();
super.onDestroy();
}
}

View file

@ -1,234 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.ui.android.dialogs;
import android.content.Context;
import android.view.*;
import android.widget.*;
import android.graphics.Color;
import org.geometerplus.zlibrary.core.util.ZLColor;
import org.geometerplus.zlibrary.core.dialogs.ZLColorOptionEntry;
import org.geometerplus.zlibrary.core.resources.ZLResource;
import org.geometerplus.zlibrary.ui.android.util.ZLAndroidColorUtil;
class ZLAndroidColorOptionView extends ZLAndroidOptionView {
private View myContainer;
private ComponentView myRedView;
private ComponentView myGreenView;
private ComponentView myBlueView;
private View myColorArea;
protected ZLAndroidColorOptionView(ZLAndroidDialogContent tab, String name, ZLColorOptionEntry option) {
super(tab, name, option);
}
private class ComponentView extends LinearLayout {
private int myValue;
private TextView myValueView;
private Button myLeftLeftButton;
private Button myLeftButton;
private Button myRightButton;
private Button myRightRightButton;
ComponentView(Context context, String labelText, int initialValue) {
super(context);
setOrientation(LinearLayout.HORIZONTAL);
setHorizontalGravity(0x05);
TextView label = new TextView(context);
label.setText(labelText + ":");
label.setPadding(0, 6, 0, 6);
label.setTextSize(16);
myLeftLeftButton = new Button(context) {
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (myValue > 0) {
myValue -= 20;
if (myValue < 0) {
myValue = 0;
}
setComponentValue(myValue);
}
}
return true;
}
};
myLeftLeftButton.setText("<<");
myLeftLeftButton.setTextSize(14);
myLeftButton = new Button(context) {
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (myValue > 0) {
setComponentValue(--myValue);
}
}
return true;
}
};
myLeftButton.setText("<");
myLeftButton.setTextSize(14);
myValueView = new TextView(context);
myValueView.setPadding(2, 6, 2, 6);
myValueView.setTextSize(16);
myRightButton = new Button(context) {
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (myValue < 255) {
setComponentValue(++myValue);
}
}
return true;
}
};
myRightButton.setText(">");
myRightButton.setTextSize(14);
myRightRightButton = new Button(context) {
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (myValue < 255) {
myValue += 20;
if (myValue > 255) {
myValue = 255;
}
setComponentValue(myValue);
}
}
return true;
}
};
myRightRightButton.setText(">>");
myRightRightButton.setTextSize(14);
myValue = initialValue;
setComponentValue(initialValue);
addView(label, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
addView(myLeftLeftButton, new LayoutParams(40, 40));
addView(myLeftButton, new LayoutParams(40, 40));
addView(myValueView, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
addView(myRightButton, new LayoutParams(40, 40));
addView(myRightRightButton, new LayoutParams(40, 40));
}
int getComponentValue() {
return myValue;
}
void setComponentValue(int value) {
myValue = value;
String txtValue = "" + value;
switch (txtValue.length()) {
case 1:
txtValue = " " + txtValue;
break;
case 2:
txtValue = " " + txtValue;
break;
}
myValueView.setText(txtValue);
myLeftLeftButton.setEnabled(value > 0);
myLeftButton.setEnabled(value > 0);
myRightButton.setEnabled(value < 255);
myRightRightButton.setEnabled(value < 255);
updateColorArea();
}
};
void addAndroidViews() {
if (myContainer == null) {
final Context context = myTab.getContext();
LinearLayout layout = new LinearLayout(context);
layout.setOrientation(LinearLayout.HORIZONTAL);
layout.setPadding(0, 6, 0, 0);
final ZLColorOptionEntry colorOption = (ZLColorOptionEntry)myOption;
final ZLColor color = colorOption.initialColor();
final ZLResource resource = ZLResource.resource(ZLAndroidDialogManager.COLOR_KEY);
myRedView = new ComponentView(context, resource.getResource("red").getValue(), color.Red);
myGreenView = new ComponentView(context, resource.getResource("green").getValue(), color.Green);
myBlueView = new ComponentView(context, resource.getResource("blue").getValue(), color.Blue);
layout.setOrientation(LinearLayout.VERTICAL);
layout.addView(myRedView, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
layout.addView(myGreenView, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
layout.addView(myBlueView, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
myColorArea = new View(context);
layout.setPadding(20, 0, 20, 0);
myColorArea.setMinimumHeight(60);
myColorArea.setBackgroundColor(ZLAndroidColorUtil.rgb(color));
layout.addView(myColorArea, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.FILL_PARENT));
myContainer = layout;
}
myTab.addAndroidView(myContainer, true);
}
private void updateColorArea() {
if (myColorArea != null) {
myColorArea.setBackgroundColor(Color.rgb(
myRedView.getComponentValue(),
myGreenView.getComponentValue(),
myBlueView.getComponentValue()
));
}
}
protected void reset() {
if (myContainer != null) {
final ZLColorOptionEntry colorOption = (ZLColorOptionEntry)myOption;
final ZLColor color = colorOption.getColor();
colorOption.onReset(new ZLColor(
myRedView.getComponentValue(),
myGreenView.getComponentValue(),
myBlueView.getComponentValue()
));
myRedView.setComponentValue(color.Red);
myGreenView.setComponentValue(color.Green);
myBlueView.setComponentValue(color.Blue);
myColorArea.setBackgroundColor(ZLAndroidColorUtil.rgb(color));
}
}
protected void _onAccept() {
if (myContainer != null) {
((ZLColorOptionEntry)myOption).onAccept(new ZLColor(
myRedView.getComponentValue(),
myGreenView.getComponentValue(),
myBlueView.getComponentValue()
));
myContainer = null;
myColorArea = null;
myRedView = null;
myGreenView = null;
myBlueView = null;
}
}
}

View file

@ -1,140 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.ui.android.dialogs;
import android.content.Context;
import android.view.*;
import android.widget.*;
import org.geometerplus.zlibrary.core.dialogs.ZLComboOptionEntry;
class ZLAndroidComboOptionView extends ZLAndroidOptionView {
private TextView myLabel;
private Spinner mySpinner;
protected ZLAndroidComboOptionView(ZLAndroidDialogContent tab, String name, ZLComboOptionEntry option) {
super(tab, name, option);
}
void addAndroidViews() {
final Context context = myTab.getContext();
if (myName != null) {
if (myLabel == null) {
myLabel = new TextView(context);
myLabel.setText(myName);
myLabel.setPadding(0, 12, 0, 12);
myLabel.setTextSize(18);
}
myTab.addAndroidView(myLabel, false);
}
if (mySpinner == null) {
mySpinner = new Spinner(context);
final ComboAdapter adapter = new ComboAdapter();
mySpinner.setAdapter(adapter);
mySpinner.setOnItemSelectedListener(adapter);
mySpinner.setSelection(initialIndex((ZLComboOptionEntry)myOption));
}
myTab.addAndroidView(mySpinner, true);
}
private static int initialIndex(ZLComboOptionEntry comboEntry) {
int index = comboEntry.getValues().indexOf(comboEntry.initialValue());
return (index >= 0) ? index : 0;
}
protected void reset() {
final ZLComboOptionEntry comboEntry = (ZLComboOptionEntry)myOption;
comboEntry.onReset();
if (mySpinner != null) {
mySpinner.setSelection(initialIndex(comboEntry));
}
}
protected void _onAccept() {
if (mySpinner != null) {
final EditText editor = ((ComboAdapter)mySpinner.getAdapter()).myEditor;
if (editor != null) {
((ZLComboOptionEntry)myOption).onAccept(editor.getText().toString());
}
myLabel = null;
mySpinner = null;
}
}
private class ComboAdapter extends BaseAdapter implements Spinner.OnItemSelectedListener {
EditText myEditor;
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
final ZLComboOptionEntry comboEntry = (ZLComboOptionEntry)myOption;
comboEntry.onValueSelected(position);
}
public void onNothingSelected(AdapterView<?> parent) {
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
TextView textView = new TextView(parent.getContext());
textView.setPadding(0, 12, 0, 12);
textView.setTextSize(20);
textView.setText((String)getItem(position));
convertView = textView;
} else {
((TextView)convertView).setText((String)getItem(position));
}
return convertView;
}
public View getView(int position, View convertView, ViewGroup parent) {
final ZLComboOptionEntry comboEntry = (ZLComboOptionEntry)myOption;
if (convertView != null) {
myEditor = (EditText)convertView;
} else {
myEditor = new EditText(parent.getContext()) {
protected boolean getDefaultEditable() {
return comboEntry.isEditable();
}
};
myEditor.setSingleLine(true);
}
myEditor.setText((String)getItem(position), TextView.BufferType.EDITABLE);
return myEditor;
}
public int getCount() {
return ((ZLComboOptionEntry)myOption).getValues().size();
}
public Object getItem(int position) {
return ((ZLComboOptionEntry)myOption).getValues().get(position);
}
public long getItemId(int position) {
return position;
}
@Override
public boolean hasStableIds() {
return false;
}
}
}

View file

@ -1,146 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.ui.android.dialogs;
import java.util.ArrayList;
import android.content.Context;
import android.view.*;
import android.widget.*;
import org.geometerplus.zlibrary.core.resources.ZLResource;
import org.geometerplus.zlibrary.core.dialogs.*;
import org.geometerplus.zlibrary.core.util.ZLArrayUtils;
class ZLAndroidDialogContent extends ZLDialogContent implements ZLAndroidDialogInterface {
private Context myContext;
protected ListView myListView;
final ArrayList<View> myAndroidViews = new ArrayList<View>();
private boolean[] mySelectableMarks = new boolean[10];
ZLAndroidDialogContent(Context context, ZLResource resource) {
super(resource);
myContext = context;
}
public void setActivity(DialogActivity activity) {
createListView(activity);
activity.setContentView(myListView);
activity.setTitle(getDisplayName());
}
public void endActivity() {
accept();
myAndroidViews.clear();
}
protected void createListView(Context context) {
myContext = context;
myListView = new ListView(context);
myListView.setAdapter(new ViewAdapter());
}
Context getContext() {
return myContext;
}
private ArrayList<View> getAndroidViews() {
if (myAndroidViews.isEmpty()) {
final ArrayList<ZLOptionView> views = Views;
final int len = views.size();
for (int i = 0; i < len; ++i) {
final ZLAndroidOptionView v = (ZLAndroidOptionView)views.get(i);
if (v.isVisible()) {
v.addAndroidViews();
}
}
}
return myAndroidViews;
}
void invalidateView() {
if (!myAndroidViews.isEmpty()) {
myAndroidViews.clear();
myListView.setAdapter(new ViewAdapter());
myListView.invalidate();
}
}
public void addOptionByName(String name, ZLOptionEntry option) {
if (name != null) {
name = name.replaceAll("&", "");
}
ZLAndroidOptionView view = null;
if (option instanceof ZLComboOptionEntry) {
view = new ZLAndroidComboOptionView(
this, name, (ZLComboOptionEntry)option
);
} else if (option instanceof ZLColorOptionEntry) {
view = new ZLAndroidColorOptionView(
this, name, (ZLColorOptionEntry)option
);
}
if (view != null) {
view.setVisible();
}
addView(view);
}
void addAndroidView(View view, boolean isSelectable) {
if (view != null) {
boolean[] marks = mySelectableMarks;
final int len = marks.length;
final int index = myAndroidViews.size();
if (index == len) {
marks = ZLArrayUtils.createCopy(marks, len, 2 * len);
mySelectableMarks = marks;
}
myAndroidViews.add(view);
marks[index] = isSelectable;
}
}
private class ViewAdapter extends BaseAdapter {
public View getView(int position, View convertView, ViewGroup parent) {
return (View)getAndroidViews().get(position);
}
/*public boolean areAllItemsSelectable() {
return true;
}
public boolean isSelectable(int position) {
return mySelectableMarks[position];
}*/
public int getCount() {
return getAndroidViews().size();
}
public Object getItem(int position) {
return "";
}
public long getItemId(int position) {
return position;
}
}
}

View file

@ -1,25 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.ui.android.dialogs;
interface ZLAndroidDialogInterface {
void setActivity(DialogActivity activity);
void endActivity();
}

View file

@ -1,44 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.ui.android.dialogs;
import org.geometerplus.zlibrary.core.dialogs.ZLOptionView;
import org.geometerplus.zlibrary.core.dialogs.ZLOptionEntry;
abstract class ZLAndroidOptionView extends ZLOptionView {
ZLAndroidDialogContent myTab;
private boolean myIsVisible;
protected ZLAndroidOptionView(ZLAndroidDialogContent tab, String name, ZLOptionEntry option) {
super(name, option);
myTab = tab;
}
final boolean isVisible() {
return myIsVisible;
}
protected final void show() {
myIsVisible = true;
myTab.invalidateView();
}
abstract void addAndroidViews();
}

View file

@ -1,60 +0,0 @@
/*
* Copyright (C) 2007-2010 Geometer Plus <contact@geometerplus.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
package org.geometerplus.zlibrary.ui.android.dialogs;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import org.geometerplus.zlibrary.core.dialogs.*;
import org.geometerplus.zlibrary.core.resources.ZLResource;
import org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication;
public class ZLAndroidOptionsDialog extends ZLOptionsDialog {
private final Activity myMainActivity;
public ZLAndroidOptionsDialog(Activity activity, ZLResource resource) {
super(resource);
myMainActivity = activity;
}
private static void runDialog(Activity activity, ZLAndroidDialogInterface dialog) {
((ZLAndroidApplication)activity.getApplication()).putData(
DialogActivity.DIALOG_KEY, dialog
);
Intent intent = new Intent();
intent.setClass(activity, DialogActivity.class);
activity.startActivity(intent);
}
public void run(int index) {
final ZLAndroidDialogContent tab = (ZLAndroidDialogContent)myTabs.get(index);
runDialog(myMainActivity, tab);
}
public ZLDialogContent createTab(String key) {
final Context context = myMainActivity;
final ZLDialogContent tab =
new ZLAndroidDialogContent(context, getTabResource(key));
myTabs.add(tab);
return tab;
}
}

View file

@ -65,23 +65,4 @@ public class ZLAndroidApplication extends Application {
new ZLAndroidDialogManager();
new ZLAndroidLibrary(this);
}
@Override
public void onTerminate() {
super.onTerminate();
}
public void putData(Object key, Object value) {
myData.put(key, value);
}
public void removeData(Object key) {
myData.remove(key);
}
public Object getData(Object key) {
return myData.get(key);
}
private final HashMap<Object,Object> myData = new HashMap<Object,Object>();
}