Skip to content

Commit

Permalink
Fixing actSummaryReply
Browse files Browse the repository at this point in the history
  • Loading branch information
marigostra committed Dec 28, 2022
1 parent 6b5083c commit acc4691
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 76 deletions.
61 changes: 23 additions & 38 deletions src/main/java/org/luwrain/app/mail/MainLayout.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import static org.luwrain.core.DefaultEventResponse.*;

import static org.luwrain.app.mail.App.*;
import static org.luwrain.app.mail.Utils.*;

final class MainLayout extends LayoutBase implements TreeListArea.LeafClickHandler<MailFolder>, ClickHandler<SummaryItem>
{
Expand Down Expand Up @@ -73,28 +74,27 @@ final class MainLayout extends LayoutBase implements TreeListArea.LeafClickHandl
params.model = new ListModel<>(summaryItems);
params.clickHandler = this;
params.appearance = new DoubleLevelAppearance<SummaryItem>(getControlContext()){
@Override public boolean isSectionItem(SummaryItem item)
{
return item.type == SummaryItem.Type.SECTION;
}
@Override public boolean isSectionItem(SummaryItem item) { return item.type == SummaryItem.Type.SECTION; }
};
params.transition = new DoubleLevelTransition<SummaryItem>(params.model){
@Override public boolean isSectionItem(SummaryItem item)
{
return item.type == SummaryItem.Type.SECTION;
}
@Override public boolean isSectionItem(SummaryItem item) { return item.type == SummaryItem.Type.SECTION; }
};
}));
final ReaderArea.Params messageParams = new ReaderArea.Params();
messageParams.context = getControlContext();
messageParams.name = app.getStrings().messageAreaName();
this.messageArea = new ReaderArea(messageParams);
final ActionInfo
fetchIncomingBkg = action("fetch-incoming-bkg", app.getStrings().actionFetchIncomingBkg(), new InputEvent(InputEvent.Special.F6), ()->{ getLuwrain().runWorker(org.luwrain.pim.workers.Pop3.NAME); return true;});
setAreaLayout(AreaLayout.LEFT_RIGHT, foldersArea, actions(
action("remove-folder", app.getStrings().actionRemoveFolder(), new InputEvent(InputEvent.Special.DELETE), this::actRemoveFolder),
action("new-folder", app.getStrings().actionNewFolder(), new InputEvent(InputEvent.Special.INSERT), MainLayout.this::actNewFolder),
fetchIncomingBkg),
setAreaLayout(AreaLayout.LEFT_TOP_BOTTOM, foldersArea, actions(
action("remove-folder", app.getStrings().actionRemoveFolder(), new InputEvent(InputEvent.Special.DELETE), this::actRemoveFolder),
action("new-folder", app.getStrings().actionNewFolder(), new InputEvent(InputEvent.Special.INSERT), MainLayout.this::actNewFolder),
fetchIncomingBkg),
summaryArea, actions(
fetchIncomingBkg
),
messageArea, actions(
));
messageArea = null;
}

@Override public boolean onLeafClick(TreeListArea<MailFolder> area, MailFolder folder)
Expand All @@ -113,20 +113,14 @@ summaryArea, actions(
final MailMessage message = item.message;
if (message == null)
return false;
try {
if (message.getState() == MailMessage.State.NEW)
{
message.setState(MailMessage.State.READ);
summaryArea.refresh();
}
messageArea.setDocument(Utils.createDocForMessage(message, app.getStrings()), 128);
return true;
}
catch(PimException e)
if (message.getState() == MailMessage.State.NEW)
{
app.getLuwrain().crash(e);
return true;
message.setState(MailMessage.State.READ);
summaryArea.refresh();
}
messageArea.setDocument(createDocForMessage(message, app.getStrings()), 128);
setActiveArea(messageArea);
return true;
}

private boolean actNewFolder()
Expand Down Expand Up @@ -201,21 +195,12 @@ private boolean actDeleteMessage(ListArea summaryArea, boolean deleteForever)
return true;
}

private boolean actReply(ListArea summaryArea)
private boolean actSummaryReply()
{
/*
NullCheck.notNull(base, "base");
NullCheck.notNull(summaryArea, "summaryArea");
final Object obj = summaryArea.selected();
if (obj == null || !(obj instanceof SummaryItem))
return false;
final SummaryItem summaryItem = (SummaryItem)obj;
if (summaryItem.message == null)
final SummaryItem item = summaryArea.selected();
if (item == null || item.message == null)
return false;
return base.hooks.makeReply(summaryItem.message);
*/
return true;
return app.getHooks().makeReply(item.message);
}

boolean saveAttachment(String fileName)
Expand Down
61 changes: 23 additions & 38 deletions src/main/java/org/luwrain/app/mail/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,43 +25,10 @@
import org.luwrain.pim.mail.*;
import org.luwrain.util.*;

class Utils
final class Utils
{
static String listToString(String[] items)
{
NullCheck.notNullItems(items, "items");
if (items.length == 0)
return "";
final StringBuilder b = new StringBuilder();
b.append(items[0]);
for(int i = 1;i < items.length;++i)
b.append(", ").append(items[i]);
return new String(b);
}

static String[] splitLines(String str)
{
NullCheck.notNull(str, "str");
if (str.isEmpty())
return new String[0];
return FileUtils.universalLineSplitting(str);
}

static String getReplyTo(byte[] bytes) throws PimException, java.io.IOException
{
return "";
/*
final MailUtils utils = new MailUtils(bytes);
final String[] res = utils.getReplyTo(true);
if (res == null || res.length < 1)
return "";
return res[0];
*/
}

static Document createDocForMessage(MailMessage message, Strings strings) throws PimException
{
NullCheck.notNull(message, "message");
final NodeBuilder builder = new NodeBuilder();
builder.addParagraph(strings.messageAreaFrom() + " " + message.getFrom());
builder.addParagraph(strings.messageAreaTo() + " " + listToString(message.getTo()));
Expand All @@ -71,11 +38,11 @@ static Document createDocForMessage(MailMessage message, Strings strings) throws
builder.addParagraph(strings.messageAreaContentType() + " " + message.getContentType());
if (message.getAttachments().length > 0)
{
builder.addEmptyLine();
for(String a: message.getAttachments())
builder.addParagraph(strings.messageAreaAttachment() + " " + a);
builder.addEmptyLine();
for(String a: message.getAttachments())
builder.addParagraph(strings.messageAreaAttachment() + " " + a);
}
builder.addEmptyLine();
builder.addEmptyLine();
for(String line: splitLines(message.getText()))
if (!line.trim().isEmpty())
builder.addParagraph(line); else
Expand All @@ -84,4 +51,22 @@ static Document createDocForMessage(MailMessage message, Strings strings) throws
doc.commit();
return doc;
}

static private String listToString(String[] items)
{
if (items.length == 0)
return "";
final StringBuilder b = new StringBuilder();
b.append(items[0]);
for(int i = 1;i < items.length;++i)
b.append(", ").append(items[i]);
return new String(b);
}

static private String[] splitLines(String str)
{
if (str.isEmpty())
return new String[0];
return FileUtils.universalLineSplitting(str);
}
}

0 comments on commit acc4691

Please sign in to comment.