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

cancel menu (in progress)

This commit is contained in:
Nikolay Pultsin 2011-01-30 02:36:11 +00:00
parent 9d765548c4
commit 43c22be00d
13 changed files with 54 additions and 23 deletions

View file

@ -159,7 +159,7 @@
</node>
<node name="cancelMenu">
<node name="previousBook" value="Open previous book" toBeTranslated="true"/>
<node name="gotoPosition" value="Go to position" toBeTranslated="true"/>
<node name="returnTo" value="Return to ..." toBeTranslated="true"/>
<node name="close" value="Close FBReader" toBeTranslated="true"/>
</node>
<node name="menu">

View file

@ -160,7 +160,7 @@
</node>
<node name="cancelMenu">
<node name="previousBook" value="Open previous book" toBeTranslated="true"/>
<node name="gotoPosition" value="Go to position" toBeTranslated="true"/>
<node name="returnTo" value="Return to ..." toBeTranslated="true"/>
<node name="close" value="Close FBReader" toBeTranslated="true"/>
</node>
<node name="menu">

View file

@ -158,7 +158,7 @@
</node>
<node name="cancelMenu">
<node name="previousBook" value="Open previous book"/>
<node name="gotoPosition" value="Go to position"/>
<node name="returnTo" value="Return to ..."/>
<node name="close" value="Close FBReader"/>
</node>
<node name="menu">

View file

@ -162,7 +162,7 @@
</node>
<node name="cancelMenu">
<node name="previousBook" value="Open previous book" toBeTranslated="true"/>
<node name="gotoPosition" value="Go to position" toBeTranslated="true"/>
<node name="returnTo" value="Return to ..." toBeTranslated="true"/>
<node name="close" value="Close FBReader" toBeTranslated="true"/>
</node>
<node name="menu">

View file

@ -159,7 +159,7 @@
</node>
<node name="cancelMenu">
<node name="previousBook" value="Open previous book" toBeTranslated="true"/>
<node name="gotoPosition" value="Go to position" toBeTranslated="true"/>
<node name="returnTo" value="Return to ..." toBeTranslated="true"/>
<node name="close" value="Close FBReader" toBeTranslated="true"/>
</node>
<node name="menu">

View file

@ -159,7 +159,7 @@
</node>
<node name="cancelMenu">
<node name="previousBook" value="Open previous book" toBeTranslated="true"/>
<node name="gotoPosition" value="Go to position" toBeTranslated="true"/>
<node name="returnTo" value="Return to ..." toBeTranslated="true"/>
<node name="close" value="Close FBReader" toBeTranslated="true"/>
</node>
<node name="menu">

View file

@ -159,7 +159,7 @@
</node>
<node name="cancelMenu">
<node name="previousBook" value="Open previous book" toBeTranslated="true"/>
<node name="gotoPosition" value="Go to position" toBeTranslated="true"/>
<node name="returnTo" value="Return to ..." toBeTranslated="true"/>
<node name="close" value="Close FBReader" toBeTranslated="true"/>
</node>
<node name="menu">

View file

@ -158,7 +158,7 @@
</node>
<node name="cancelMenu">
<node name="previousBook" value="Открыть предыдущую книгу"/>
<node name="gotoPosition" value="Перейти на ..."/>
<node name="returnTo" value="Вернуться к ..."/>
<node name="close" value="Закрыть FBReader"/>
</node>
<node name="menu">

View file

@ -159,7 +159,7 @@
</node>
<node name="cancelMenu">
<node name="previousBook" value="Open previous book" toBeTranslated="true"/>
<node name="gotoPosition" value="Go to position" toBeTranslated="true"/>
<node name="returnTo" value="Return to ..." toBeTranslated="true"/>
<node name="close" value="Close FBReader" toBeTranslated="true"/>
</node>
<node name="menu">

View file

@ -159,7 +159,7 @@
</node>
<node name="cancelMenu">
<node name="previousBook" value="Open previous book" toBeTranslated="true"/>
<node name="gotoPosition" value="Go to position" toBeTranslated="true"/>
<node name="returnTo" value="Return to ..." toBeTranslated="true"/>
<node name="close" value="Close FBReader" toBeTranslated="true"/>
</node>
<node name="menu">

View file

@ -159,7 +159,7 @@
</node>
<node name="cancelMenu">
<node name="previousBook" value="Open previous book" toBeTranslated="true"/>
<node name="gotoPosition" value="Go to position" toBeTranslated="true"/>
<node name="returnTo" value="Return to ..." toBeTranslated="true"/>
<node name="close" value="Close FBReader" toBeTranslated="true"/>
</node>
<node name="menu">

View file

@ -190,6 +190,7 @@ public final class FBReaderApp extends ZLApplication {
if (Model != null) {
BookModel.Label label = Model.getLabel(id);
if (label != null) {
addInvisibleBookmark();
if (label.ModelId == null) {
BookTextView.gotoPosition(label.ParagraphIndex, 0, 0);
} else {
@ -291,7 +292,7 @@ public final class FBReaderApp extends ZLApplication {
static enum CancelActionType {
previousBook,
gotoPosition,
returnTo,
close
}
@ -308,6 +309,15 @@ public final class FBReaderApp extends ZLApplication {
}
}
private static class BookmarkDescription extends CancelActionDescription {
final Bookmark Bookmark;
BookmarkDescription(Bookmark b) {
super(CancelActionType.returnTo, b.getText());
Bookmark = b;
}
}
private final ArrayList<CancelActionDescription> myCancelActionsList =
new ArrayList<CancelActionDescription>();
@ -319,15 +329,11 @@ public final class FBReaderApp extends ZLApplication {
CancelActionType.previousBook, previousBook.getTitle()
));
}
myCancelActionsList.add(new CancelActionDescription(
CancelActionType.gotoPosition, "this is a summary"
));
myCancelActionsList.add(new CancelActionDescription(
CancelActionType.gotoPosition, "this is a summary"
));
myCancelActionsList.add(new CancelActionDescription(
CancelActionType.gotoPosition, "this is a summary"
));
if (Model.Book != null) {
for (Bookmark bookmark : Bookmark.invisibleBookmarks(Model.Book)) {
myCancelActionsList.add(new BookmarkDescription(bookmark));
}
}
myCancelActionsList.add(new CancelActionDescription(
CancelActionType.close, null
));
@ -344,14 +350,33 @@ public final class FBReaderApp extends ZLApplication {
case previousBook:
openBook(Library.getPreviousBook(), null);
break;
case gotoPosition:
case returnTo:
{
final Bookmark b = ((BookmarkDescription)description).Bookmark;
b.delete();
addInvisibleBookmark();
gotoBookmark(b);
break;
}
case close:
closeWindow();
break;
}
}
public void addInvisibleBookmark() {
if (Model.Book != null) {
final Bookmark b = addBookmark(6, false);
if (b != null) {
b.save();
final List<Bookmark> bookmarks = Bookmark.invisibleBookmarks(Model.Book);
for (int i = 3; i < bookmarks.size(); ++i) {
bookmarks.get(i).delete();
}
}
}
}
public Bookmark addBookmark(int maxLength, boolean visible) {
final FBView view = getTextView();
final ZLTextWordCursor cursor = view.getStartCursor();

View file

@ -33,6 +33,12 @@ public final class Bookmark extends ZLTextFixedPosition {
return BooksDatabase.Instance().loadAllVisibleBookmarks();
}
public static List<Bookmark> invisibleBookmarks(Book book) {
final List<Bookmark> list = BooksDatabase.Instance().loadBookmarks(book.getId(), false);
Collections.sort(list, new ByTimeComparator());
return list;
}
private long myId;
private final long myBookId;
private final String myBookTitle;
@ -152,7 +158,7 @@ public final class Bookmark extends ZLTextFixedPosition {
}
}
public static String createBookmarkText(ZLTextWordCursor cursor, int maxWords) {
private static String createBookmarkText(ZLTextWordCursor cursor, int maxWords) {
cursor = new ZLTextWordCursor(cursor);
final StringBuilder builder = new StringBuilder();