diff --git a/src/BusinessCardManagement.java b/src/BusinessCardManagement.java index c586802..7ffe66d 100644 --- a/src/BusinessCardManagement.java +++ b/src/BusinessCardManagement.java @@ -62,6 +62,7 @@ if ((((state==0)&&!company_.equals(""))&&!(this.value.containsKey(company_)))) { this.value.put(company_,new BusinessCardManagementElement(representative_, position_, establishment_, address1_, address2_, businessdescription1_, businessdescription2_, companyoverview_, URL_, contactPerson1_, position1_, tel1_, email1_, contactPerson2_, position2_, tel2_, email2_, contactPerson3_, position3_, tel3_, email3_, contactPerson4_, position4_, tel4_, email4_)); temp_if15 = this.value; + this.screen.getPresenter().setSaved(false); } else { temp_if15 = this.value; } @@ -85,6 +86,7 @@ if (!(this.value.containsKey(company_))) { this.value.put(company_, new BusinessCardManagementElement(representative_, position_, establishment_, address1_, address2_, businessdescription1_, businessdescription2_, companyoverview_, URL_, contactPerson1_, position1_, tel1_, email1_, contactPerson2_, position2_, tel2_, email2_, contactPerson3_, position3_, tel3_, email3_, contactPerson4_, position4_, tel4_, email4_)); temp_if14 = this.value; + this.screen.getPresenter().setSaved(false); } else { JPanel mainPanel = screen.getPresenter().getMainPanel(); JOptionPane.showMessageDialog(mainPanel, "会社名は既に存在します。"); @@ -121,9 +123,11 @@ } else { this.value.remove(prevCompany); this.value.put(company_, new BusinessCardManagementElement(representative_, position_, establish_, address1_, address2_, business1_, business2_, companydetail_, URL_, contactPerson1_, position1_, tel1_, email1_, contactPerson2_, position2_, tel2_, email2_, contactPerson3_, position3_, tel3_, email3_, contactPerson4_, position4_, tel4_, email4_)); + this.screen.getPresenter().setSaved(false); } } else { this.value.put(company_, new BusinessCardManagementElement(representative_, position_, establish_, address1_, address2_, business1_, business2_, companydetail_, URL_, contactPerson1_, position1_, tel1_, email1_, contactPerson2_, position2_, tel2_, email2_, contactPerson3_, position3_, tel3_, email3_, contactPerson4_, position4_, tel4_, email4_)); + this.screen.getPresenter().setSaved(false); } temp_if16 = this.value; } else { @@ -157,6 +161,7 @@ String searchScreen = this.searchScreen.getValue(); this.widget = screenTemplates.getScreenTemplate(searchScreen).getWidgets1().getWidget1(w4ca84254d30c423ab8e449171a5b5123); this.widget.updateDataFromBusinessCardManagement2(scId, wid, this.getValue(), w4ca84254d30c423ab8e449171a5b5123, searchScreen); + this.screen.getPresenter().setSaved(false); } @@ -223,7 +228,7 @@ String searchScreen = this.searchScreen.getValue(); this.widget = screenTemplates.getScreenTemplate(searchScreen).getWidgets1().getWidget1(w4ca84254d30c423ab8e449171a5b5123); this.widget.updateDataFromBusinessCardManagement2(searchScreen, w4ca84254d30c423ab8e449171a5b5123, this.getValue(), w4ca84254d30c423ab8e449171a5b5123, searchScreen); -// screen.getPresenter().setTable(companyList, w2d109ad3739d4744a1874ac179fc38b9.getValue(), getValue()); + this.screen.getPresenter().setSaved(false); } catch (IOException e) { e.printStackTrace(); JOptionPane.showMessageDialog(mainPanel, "ファイルの取り込みに失敗しました。"); @@ -330,7 +335,7 @@ String searchScreen = this.searchScreen.getValue(); this.widget = screenTemplates.getScreenTemplate(searchScreen).getWidgets1().getWidget1(w4ca84254d30c423ab8e449171a5b5123); this.widget.updateData(this.getValue()); -// screen.getPresenter().setTable(companyList, w2d109ad3739d4744a1874ac179fc38b9.getValue(), getValue()); + this.screen.getPresenter().setSaved(true); } catch (URISyntaxException | IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); @@ -389,8 +394,8 @@ sb.append('\n'); } sb.deleteCharAt(sb.length() - 1); - System.out.println(sb.toString()); Files.write(path, sb.toString().getBytes(CHARSETS[0])); + this.screen.getPresenter().setSaved(true); } catch (URISyntaxException | IOException e) { e.printStackTrace(); JOptionPane.showMessageDialog(mainPanel, "ファイルの保存に失敗しました。"); @@ -423,6 +428,7 @@ String searchScreen = this.searchScreen.getValue(); this.widget = screenTemplates.getScreenTemplate(searchScreen).getWidgets1().getWidget1(w4ca84254d30c423ab8e449171a5b5123); this.widget.updateDataFromBusinessCardManagement2(searchScreen, w4ca84254d30c423ab8e449171a5b5123, this.getValue(), w4ca84254d30c423ab8e449171a5b5123, searchScreen); + this.screen.getPresenter().setSaved(false); } } } diff --git a/src/StartupManagementWindow.java b/src/StartupManagementWindow.java index eb49537..9bd00ca 100644 --- a/src/StartupManagementWindow.java +++ b/src/StartupManagementWindow.java @@ -6,8 +6,6 @@ private JPanel mainPanel; public SwingPresenter presenter; - private boolean isSaved = false; - public StartupManagementWindow(Main main) { this.main = main; @@ -22,7 +20,7 @@ addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e){ - if(isSaved != true){ + if(!presenter.hasSaved()){ int result = JOptionPane.showConfirmDialog( StartupManagementWindow.this, "未保存のデータが消えてしまいますが、終了してもよろしいでしょうか?", @@ -47,7 +45,4 @@ return presenter; } - public void setSaved(boolean saved){ - this.isSaved = saved; - } } diff --git a/src/SwingPresenter.java b/src/SwingPresenter.java index ccd7512..5cdab2f 100644 --- a/src/SwingPresenter.java +++ b/src/SwingPresenter.java @@ -20,6 +20,7 @@ private JPanel mainPanel; private Map components = new HashMap<>(); private String curScreenId; + private boolean hasSaved = false; public SwingPresenter(Main main, JPanel mainPanel) { this.main = main; @@ -436,4 +437,10 @@ mainPanel.setLayout(null); } } + public boolean hasSaved() { + return hasSaved; + } + public void setSaved(boolean saved){ + this.hasSaved = saved; + } }