package _VisualDVM.Passes.All; import Common.Utils.Utils_; import Common.Visual.UI; import _VisualDVM.ComponentsServer.BugReport.BugReport; import _VisualDVM.ComponentsServer.BugReport.BugReportState; import _VisualDVM.ComponentsServer.ComponentsServer; import _VisualDVM.Global; import _VisualDVM.Passes.PassCode; import _VisualDVM.Passes.Server.PublishServerObject; import _VisualDVM.Repository.EmailMessage; import java.util.Date; public class PublishBugReport extends PublishServerObject { public PublishBugReport() { super(Global.componentsServer, BugReport.class); } @Override public String getIconPath() { return "/Common/icons/Publish.png"; } @Override protected boolean canStart(Object... args) throws Exception { if (Global.componentsServer.db.bugReports.getUI().CheckCurrent(Log)) { target = Global.componentsServer.db.bugReports.getUI().getCurrent(); if (!target.state.equals(BugReportState.draft)) { Log.Writeln_("Отчёт об ошибке " + target.id + " уже опубликован!"); return false; } if (target.executor.isEmpty()) { Global.mainModule.getUI().getMainWindow().getCallbackWindow().FocusRecipients(); if (!UI.Question("Для отчёта об ошибке не назначен исполнитель.\nВсе равно опубликовать его")) return false; } if (!Global.mainModule.getAccount().CheckAuthorship(target.sender_address, Log) && (target.CheckDraft(Log))) { return false; } if (!target.project_version.isEmpty()) { target.packed_archive = Utils_.fileToBytes(target.getArchiveFile()); } target.change_date = new Date().getTime(); target.state = BugReportState.active; return true; } return false; } @Override protected void performDone() throws Exception { //3- рассылка EmailMessage message = new EmailMessage( "Обнаружена ошибка " + Utils_.Brackets(target.id), target.getNewMailText() ); Global.mainModule.getPass(PassCode.Email).Do( message, Global.componentsServer.db.recipients.getSelectedMails()); } }