Skip to content

Commit

Permalink
Replacing TreeArea with ListArea for the folders list
Browse files Browse the repository at this point in the history
  • Loading branch information
marigostra committed Sep 26, 2019
1 parent 7ff49f1 commit cd7aa4c
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 16 deletions.
4 changes: 2 additions & 2 deletions src/main/java/org/luwrain/app/contacts/Actions.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ final class Actions
this.base = base;
}

boolean insertIntoTree(TreeArea foldersArea)
boolean insertIntoTree(ListArea foldersArea)
{
NullCheck.notNull(foldersArea, "foldersArea");
final Object selected = foldersArea.selected();
Expand All @@ -32,7 +32,7 @@ boolean insertIntoTree(TreeArea foldersArea)
return true;
}

boolean deleteFromTree(TreeArea foldersArea, FormArea valuesArea, EditAreaOld notesArea)
boolean deleteFromTree(ListArea foldersArea, FormArea valuesArea, EditAreaOld notesArea)
{
NullCheck.notNull(foldersArea, "foldersArea");
NullCheck.notNull(valuesArea, "valuesArea");
Expand Down
21 changes: 8 additions & 13 deletions src/main/java/org/luwrain/app/contacts/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ final class App implements Application
private Base base = null;
private Actions actions = null;

private TreeArea foldersArea = null;
private ListArea foldersArea = null;
private FormArea valuesArea = null;
private EditAreaOld notesArea = null;

Expand All @@ -23,7 +23,7 @@ final class App implements Application
final Object o = luwrain.i18n().getStrings(Strings.NAME);
if (o == null || !(o instanceof Strings))
return new InitResult(InitResult.Type.NO_STRINGS_OBJ, Strings.NAME);
strings = (Strings)o;
this.strings = (Strings)o;
this.luwrain = luwrain;
this.base = new Base(luwrain, strings);
if (!base.hasStoring())
Expand All @@ -35,12 +35,12 @@ final class App implements Application

private void createAreas()
{
final TreeArea.Params treeParams = new TreeArea.Params();
treeParams.context = new DefaultControlContext(luwrain);
treeParams.model = base.getFoldersModel();
treeParams.name = strings.foldersAreaName();

foldersArea = new TreeArea(treeParams) {
this.foldersArea = new ListArea(base.createFoldersListParams((area, index, obj)->{
NullCheck.notNull(area, "area");
NullCheck.notNull(obj, "obj");
actions.openContact(App.this, obj, valuesArea, notesArea);
return true;
})) {
@Override public boolean onInputEvent(KeyboardEvent event)
{
NullCheck.notNull(event, "event");
Expand Down Expand Up @@ -72,11 +72,6 @@ private void createAreas()
return super.onSystemEvent(event);
}
}
@Override public void onClick(Object obj)
{
NullCheck.notNull(obj, "obj");
actions.openContact(App.this, obj, valuesArea, notesArea);
}
};

valuesArea = new FormArea(new DefaultControlContext(luwrain), strings.valuesAreaName()){
Expand Down
39 changes: 38 additions & 1 deletion src/main/java/org/luwrain/app/contacts/Base.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ final class Base
final Strings strings;
final ContactsStoring storing;

private final StoredContactsFolder foldersRoot;
private StoredContactsFolder[] folders = new StoredContactsFolder[0];
private StoredContact currentContact = null;
private TreeModelSource treeModelSource;
private TreeArea.Model foldersModel;
Expand All @@ -25,6 +27,15 @@ final class Base
this.luwrain = luwrain;
this.strings = strings;
this.storing = org.luwrain.pim.Connections.getContactsStoring(luwrain , true);
StoredContactsFolder root = null;
try {
root = storing.getFolders().getRoot();
}
catch (Exception e)
{
luwrain.crash(e);
}
this.foldersRoot = root;
}

boolean hasStoring()
Expand Down Expand Up @@ -327,4 +338,30 @@ boolean deleteContact(StoredContact contact)
return false;
}
}
}

ListArea.Params createFoldersListParams(ListArea.ClickHandler clickHandler)
{
NullCheck.notNull(clickHandler, "clickHandler");
final ListArea.Params params = new ListArea.Params();
params.context = new DefaultControlContext(luwrain);
params.model = new FoldersListModel();
params.appearance = new ListUtils.DefaultAppearance(params.context);
params.name = strings.foldersAreaName();
return params;
}

final class FoldersListModel implements ListArea.Model
{
@Override public int getItemCount()
{
return folders.length;
}
@Override public Object getItem(int index)
{
return folders[index];
}
@Override public void refresh()
{
}
}
}

0 comments on commit cd7aa4c

Please sign in to comment.