diff --git a/src/main/java/com/svn/utils/mirror/gui/enums/RepositoryType.java b/src/main/java/com/svn/utils/mirror/gui/enums/RepositoryType.java new file mode 100644 index 0000000..53dfe88 --- /dev/null +++ b/src/main/java/com/svn/utils/mirror/gui/enums/RepositoryType.java @@ -0,0 +1,10 @@ +package com.svn.utils.mirror.gui.enums; + +/** + * SvnMirror + * Created by Marcin on 2015-06-16. + */ +public enum RepositoryType { + LOCAL, + REMOTE +} diff --git a/src/main/java/com/svn/utils/mirror/gui/main/MainWindow.form b/src/main/java/com/svn/utils/mirror/gui/main/MainWindow.form index eed2834..028dc93 100644 --- a/src/main/java/com/svn/utils/mirror/gui/main/MainWindow.form +++ b/src/main/java/com/svn/utils/mirror/gui/main/MainWindow.form @@ -1,10 +1,18 @@
diff --git a/src/main/java/com/svn/utils/mirror/gui/main/MainWindow.java b/src/main/java/com/svn/utils/mirror/gui/main/MainWindow.java index 4accd7d..e1a29a7 100644 --- a/src/main/java/com/svn/utils/mirror/gui/main/MainWindow.java +++ b/src/main/java/com/svn/utils/mirror/gui/main/MainWindow.java @@ -3,7 +3,11 @@ package com.svn.utils.mirror.gui.main; import com.svn.utils.mirror.app.CreateRepoInt; import com.svn.utils.mirror.app.Mirror; import com.svn.utils.mirror.gui.enums.RepoAction; +import com.svn.utils.mirror.gui.enums.RepositoryType; +import com.svn.utils.mirror.gui.enums.SynchronizationStatus; import com.svn.utils.mirror.gui.logger.StatusLogger; +import com.svn.utils.mirror.gui.model.RepositoryModel; +import com.svn.utils.mirror.gui.view.SynchronizationStatusComponent; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.SVNURL; @@ -11,6 +15,8 @@ import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; /** * SvnMirror @@ -18,35 +24,76 @@ import java.awt.event.ActionListener; */ public class MainWindow extends JFrame implements CreateRepoInt { private JPanel rootPanel; - private JButton createRepoButton; + private JButton mirrorButton; private JTextPane logTextPane; - private JTextField nameTextField; + private JTextField sourcePathTextField; + private JTextField destinationRepositoryPathTextField; + private JComboBox repositoryType; + private JTextField loginTextFields; + private JPasswordField passwordField; + private JPanel rootServerLoginPanel; + private JEditorPane detailsPane; + private JPanel synchroStatusPanel; private StatusLogger statusLogger; private RepoAction repoAction; + private SynchronizationStatusComponent synchronizationStatusComponent; public MainWindow(String title, RepoAction repoAction) throws HeadlessException { super(title); statusLogger = new StatusLogger(logTextPane); this.repoAction = repoAction; - initAndShowMainWindow(); + initializeView(); + initializeFormBasedOnRepoAction(); addListeners(); } - private void addListeners() { - createRepoButton.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - Mirror.createRepo(nameTextField.getText(), MainWindow.this); - } - }); - } - - private void initAndShowMainWindow() { + private void initializeView() { setExtendedState(JFrame.MAXIMIZED_BOTH); setContentPane(rootPanel); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); pack(); setVisible(true); + synchronizationStatusComponent = new SynchronizationStatusComponent(); + synchronizationStatusComponent.setSynchronizationStatus(SynchronizationStatus.WAITING_FOR_FEEDBACK); + synchroStatusPanel.add(synchronizationStatusComponent); + + DefaultComboBoxModel