Лабораторная работа №7
This commit is contained in:
parent
4de23d08a2
commit
6e40554fa2
@ -6,14 +6,7 @@
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="39e7c520-e505-4e53-a269-c949d7c9f5d1" name="Changes" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/CountWheels.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/DirectionType.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/DrawingField.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/DrawingModernMonorail.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/DrawingWheels.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/EntityModernMonorail.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/FormModernMonorail.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Program.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/Scripts/CollectionGenericObjects/StorageCollection.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Scripts/CollectionGenericObjects/StorageCollection.java" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -23,6 +16,7 @@
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="Interface" />
|
||||
<option value="Class" />
|
||||
</list>
|
||||
</option>
|
||||
@ -39,15 +33,16 @@
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"Application.Program.executor": "Run",
|
||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"git-widget-placeholder": "LabWorking__2",
|
||||
"kotlin-language-version-configured": "true"
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"Application.Program.executor": "Run",
|
||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"git-widget-placeholder": "LabWork6",
|
||||
"kotlin-language-version-configured": "true",
|
||||
"last_opened_file_path": "C:/Учеба/AgarioGame"
|
||||
}
|
||||
}]]></component>
|
||||
}</component>
|
||||
<component name="RunManager">
|
||||
<configuration name="Program" type="Application" factoryName="Application">
|
||||
<option name="MAIN_CLASS_NAME" value="Scripts.Program" />
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,61 @@
|
||||
package Scripts.CollectionAdditionalObjects;
|
||||
|
||||
import Scripts.Drawing.DrawingModernMonorail;
|
||||
import Scripts.Drawing.DrawingMonorail;
|
||||
import Scripts.Entities.EntityModernMonorail;
|
||||
import Scripts.Entities.EntityMonorail;
|
||||
import Scripts.Wheels.IDrawingWheels;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.Random;
|
||||
|
||||
public class AdditionalCollections <T extends EntityMonorail, U extends IDrawingWheels>{
|
||||
public T[] _collectionEntity;
|
||||
public U[] _collectionDecks;
|
||||
public AdditionalCollections(int size, Class<T> type1, Class<T> type2) {
|
||||
_collectionEntity = (T[]) Array.newInstance(type1, size);
|
||||
_collectionDecks = (U[]) Array.newInstance(type2, size);
|
||||
CountEntities = size;
|
||||
CountDecks = size;
|
||||
}
|
||||
public int CountEntities;
|
||||
public int CountDecks;
|
||||
public int Insert(T entity) {
|
||||
int index = 0;
|
||||
while (index < CountEntities) {
|
||||
if (_collectionEntity[index] == null)
|
||||
{
|
||||
_collectionEntity[index] = entity;
|
||||
return index;
|
||||
}
|
||||
++index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
public int Insert(U decks) {
|
||||
int index = 0;
|
||||
while (index < CountDecks) {
|
||||
if (_collectionDecks[index] == null)
|
||||
{
|
||||
_collectionDecks[index] = decks;
|
||||
return index;
|
||||
}
|
||||
++index;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
public DrawingMonorail CreateAdditionalCollectionMonorail() {
|
||||
Random random = new Random();
|
||||
if (_collectionEntity == null || _collectionDecks == null) return null;
|
||||
T entity = _collectionEntity[random.nextInt(CountEntities)];
|
||||
U wheels = _collectionDecks[random.nextInt(CountDecks)];
|
||||
DrawingMonorail drawingMonorail = null;
|
||||
if (entity instanceof EntityModernMonorail) {
|
||||
drawingMonorail = new DrawingModernMonorail((EntityModernMonorail) entity, wheels);
|
||||
}
|
||||
else {
|
||||
drawingMonorail = new DrawingMonorail(entity, wheels);
|
||||
}
|
||||
return drawingMonorail;
|
||||
}
|
||||
}
|
@ -44,7 +44,7 @@ public class AdditionalCollection <T extends EntityMonorail, U extends IDrawingW
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
public DrawingMonorail CreateAdditionalCollectionMonorail() {
|
||||
public DrawingMonorail CreateAdditionalCollectionStormtrooper() {
|
||||
Random random = new Random();
|
||||
if (CollectionEntity == null || CollectionWheels == null) return null;
|
||||
T entity = CollectionEntity[random.nextInt(CountEntities)];
|
||||
|
@ -7,18 +7,13 @@ import java.util.NoSuchElementException;
|
||||
|
||||
public class ListGenericObjects<T> implements ICollectionGenericObjects<T> {
|
||||
private List<T> _collection;
|
||||
private CollectionType collectionType = CollectionType.List;
|
||||
private int _maxCount;
|
||||
private CollectionType collectionType = CollectionType.List;
|
||||
|
||||
public int getCount() {
|
||||
return _collection.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CollectionType GetCollectionType() {
|
||||
return collectionType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void SetMaxCount(int size) {
|
||||
if (size > 0) {
|
||||
@ -30,6 +25,11 @@ public class ListGenericObjects<T> implements ICollectionGenericObjects<T> {
|
||||
_collection = new ArrayList<T>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CollectionType GetCollectionType() {
|
||||
return collectionType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public T Get(int position)
|
||||
{
|
||||
|
@ -8,8 +8,8 @@ import java.util.NoSuchElementException;
|
||||
|
||||
public class MassiveGenericObjects<T> implements ICollectionGenericObjects<T>
|
||||
{
|
||||
private T[] _collection;
|
||||
private CollectionType collectionType = CollectionType.Massive;
|
||||
private T[] _collection;
|
||||
private int Count;
|
||||
public void SetMaxCount(int size) {
|
||||
if (size > 0) {
|
||||
@ -24,7 +24,6 @@ public class MassiveGenericObjects<T> implements ICollectionGenericObjects<T>
|
||||
public CollectionType GetCollectionType() {
|
||||
return collectionType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return Count;
|
||||
@ -57,7 +56,6 @@ public class MassiveGenericObjects<T> implements ICollectionGenericObjects<T>
|
||||
if (position >= getCount() || position < 0) return null;
|
||||
return (T) _collection[position];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<T> GetItems() {
|
||||
return new Iterable<T>() {
|
||||
|
@ -66,7 +66,7 @@ public class StorageCollection<T extends DrawingMonorail> {
|
||||
sb.append(value.getValue().getCount());
|
||||
sb.append(_separatorForKeyValueS);
|
||||
for (T monorail : value.getValue().GetItems()) {
|
||||
String data = ExtentionDrawningMonorail.GetDataForSave((DrawingMonorail) monorail);
|
||||
String data = ExtentionDrawningMonorail.GetDataForSave((DrawingMonorail)monorail);
|
||||
if (data.isEmpty()) continue;
|
||||
sb.append(data);
|
||||
sb.append(_separatorItemsS);
|
||||
@ -132,8 +132,8 @@ public class StorageCollection<T extends DrawingMonorail> {
|
||||
collection.SetMaxCount(Integer.parseInt(record[2]));
|
||||
String[] set = record[3].split(_separatorItems);
|
||||
for (String elem : set) {
|
||||
DrawingMonorail ship = ExtentionDrawningMonorail.CreateDrawingShip(elem);
|
||||
if (collection.Insert((T) ship) == -1)
|
||||
DrawingMonorail drawingMonorail = ExtentionDrawningMonorail.CreateDrawingMonorail(elem);
|
||||
if (collection.Insert((T) drawingMonorail) == -1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@ -153,29 +153,35 @@ public class StorageCollection<T extends DrawingMonorail> {
|
||||
String s = fs.readLine();
|
||||
if (s == null || s.isEmpty() || !s.startsWith(_collectionName))
|
||||
return false;
|
||||
if (_storages.containsKey(s)) {
|
||||
_storages.get(s).ClearCollection();
|
||||
}
|
||||
|
||||
s = fs.readLine();
|
||||
String[] record = s.split(_separatorForKeyValue);
|
||||
if (record.length != 4) {
|
||||
return false;
|
||||
}
|
||||
ICollectionGenericObjects<T> collection = CreateCollection(record[1]);
|
||||
if (collection == null)
|
||||
{
|
||||
return false;
|
||||
ICollectionGenericObjects<T> collection;
|
||||
|
||||
if (_storages.containsKey(s)) {
|
||||
_storages.get(s).ClearCollection();
|
||||
|
||||
collection = _storages.get(s);
|
||||
|
||||
if (record[1] == "Massive" && collection instanceof ListGenericObjects<T> || record[1] == "List" && collection instanceof MassiveGenericObjects<T>) collection = CreateCollection(record[1]);
|
||||
}
|
||||
else {
|
||||
collection = CreateCollection(record[1]);
|
||||
_storages.put(record[0], collection);
|
||||
}
|
||||
|
||||
collection.SetMaxCount(Integer.parseInt(record[2]));
|
||||
String[] set = record[3].split(_separatorItems);
|
||||
for (String elem : set) {
|
||||
DrawingMonorail monorail = ExtentionDrawningMonorail.CreateDrawingShip(elem);
|
||||
if (collection.Insert((T) monorail) == -1)
|
||||
DrawingMonorail drawingMonorail = ExtentionDrawningMonorail.CreateDrawingMonorail(elem);
|
||||
if (collection.Insert((T) drawingMonorail) == -1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
_storages.put(record[0], collection);
|
||||
return true;
|
||||
}
|
||||
catch (IOException e) {
|
||||
|
@ -1,8 +1,7 @@
|
||||
package Scripts.Drawing;
|
||||
|
||||
import Scripts.Entities.EntityMonorail;
|
||||
import Scripts.Wheels.DrawingWheels;
|
||||
import Scripts.Wheels.IDrawingWheels;
|
||||
import Scripts.Wheels.*;
|
||||
|
||||
import java.awt.*;
|
||||
import java.util.Random;
|
||||
@ -234,4 +233,17 @@ public class DrawingMonorail {
|
||||
|
||||
_wheels.DrawWheels(g2, coordinatesX, _startPositionY + 30, _entityMonorail.getBodyColor());
|
||||
}
|
||||
|
||||
public String[] GetStringRepresentationDecks() {
|
||||
if (_wheels.GetOrnament() instanceof DrawOrnament) {
|
||||
return new String[]{String.valueOf(_wheels.getCountWheels()), "DrawingDecksType1"};
|
||||
}
|
||||
else if (_wheels.GetOrnament() instanceof DrawOrnamentOval) {
|
||||
return new String[]{String.valueOf(_wheels.getCountWheels()), "DrawingDecksType2"};
|
||||
}
|
||||
else if (_wheels.GetOrnament() instanceof DrawOrnamentTriangle) {
|
||||
return new String[]{String.valueOf(_wheels.getCountWheels()), "DrawingDecksType3"};
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ package Scripts.Drawing;
|
||||
|
||||
import Scripts.Entities.EntityModernMonorail;
|
||||
import Scripts.Entities.EntityMonorail;
|
||||
import Scripts.Wheels.IDrawingWheels;
|
||||
import Scripts.Wheels.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@ -10,20 +10,20 @@ import java.util.Collections;
|
||||
public class ExtentionDrawningMonorail {
|
||||
private static String _separatorForObjectS = ":";
|
||||
private static String _separatorForObject = "\\:";
|
||||
public static DrawingMonorail CreateDrawingShip(String info) {
|
||||
public static DrawingMonorail CreateDrawingMonorail(String info) {
|
||||
String[] strs = info.split(_separatorForObject);
|
||||
EntityMonorail entityMonorail;
|
||||
IDrawingWheels wheels = null;
|
||||
IDrawingWheels wheels = new DrawingWheels();
|
||||
if (strs.length == 8)
|
||||
{
|
||||
String s = strs[8];
|
||||
switch (s) {
|
||||
case "DrawingDecksType1":
|
||||
wheels = new DrawingDecksType1();
|
||||
wheels.SetOrnament(new DrawOrnament());
|
||||
case "DrawingDecksType2":
|
||||
wheels = new DrawingDecksType2();
|
||||
wheels.SetOrnament(new DrawOrnamentOval());
|
||||
case "DrawingDecksType3":
|
||||
wheels = new DrawingDecksType3();
|
||||
wheels.SetOrnament(new DrawOrnamentTriangle());
|
||||
}
|
||||
if (wheels != null) wheels.SetCountWheels(Integer.parseInt(strs[7]));
|
||||
}
|
||||
@ -31,18 +31,18 @@ public class ExtentionDrawningMonorail {
|
||||
String s = strs[5];
|
||||
switch (s) {
|
||||
case "DrawingDecksType1":
|
||||
wheels = new DrawingDecksType1();
|
||||
wheels.SetOrnament(new DrawOrnament());
|
||||
case "DrawingDecksType2":
|
||||
wheels = new DrawingDecksType2();
|
||||
wheels.SetOrnament(new DrawOrnamentOval());
|
||||
case "DrawingDecksType3":
|
||||
wheels = new DrawingDecksType3();
|
||||
wheels.SetOrnament(new DrawOrnamentTriangle());
|
||||
}
|
||||
if (wheels != null) wheels.SetCountWheels(Integer.parseInt(strs[4]));
|
||||
}
|
||||
entityMonorail = EntityModernMonorail.CreateEntityModernMonorail(strs);
|
||||
if (entityMonorail != null)
|
||||
{
|
||||
return new DrawingModernMonorail((EntityModernMonorail) entityMonorail, wheels);
|
||||
return new DrawingModernMonorail((EntityModernMonorail)entityMonorail, wheels);
|
||||
}
|
||||
entityMonorail = EntityMonorail.CreateEntityMonorail(strs);
|
||||
if (entityMonorail != null)
|
||||
|
@ -13,7 +13,7 @@ public class EntityModernMonorail extends EntityMonorail {
|
||||
public boolean getMonorailTrack() {return _monorailTrack;}
|
||||
public boolean getCabin() {return _cabin;}
|
||||
|
||||
public void setAdditionalColor(Color value) {_additionalColor = _additionalColor;}
|
||||
public void setAdditionalColor(Color value) {_additionalColor = value;}
|
||||
public void setMonorailTrack(Boolean value) { _monorailTrack = value;}
|
||||
public void setCabin(Boolean value) { _cabin = value;}
|
||||
|
||||
@ -27,20 +27,23 @@ public class EntityModernMonorail extends EntityMonorail {
|
||||
_monorailTrack = monorailTrack;
|
||||
_cabin = cabin;
|
||||
|
||||
Step = _speed * 100/ (float)_weight;
|
||||
Step = _speed * 100/ (int)_weight;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] GetStringRepresentation()
|
||||
{
|
||||
return new String[]{"EntityModernMonorail", _speed.toString(), _weight.toString(),
|
||||
Integer speed = _speed;
|
||||
Float weight = _weight;
|
||||
|
||||
return new String[]{"EntityModernMonorail", speed.toString(), weight.toString(),
|
||||
colorToHexString(getBodyColor()), colorToHexString(getAdditionalColor()),
|
||||
String.valueOf(_monorailTrack), String.valueOf(_cabin)};
|
||||
}
|
||||
|
||||
public static EntityModernMonorail CreateEntityModernMonorail(String[] strs)
|
||||
{
|
||||
if (strs.length != 10 || !Objects.equals(strs[0], "EntityModernMonorail"))
|
||||
if (!Objects.equals(strs[0], "EntityModernMonorail"))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ import java.util.Random;
|
||||
|
||||
public class EntityMonorail {
|
||||
public float Step;
|
||||
protected Integer _speed;
|
||||
protected Float _weight;
|
||||
protected int _speed;
|
||||
protected float _weight;
|
||||
protected Color _bodyColor;
|
||||
|
||||
public int getSpeed() {
|
||||
@ -30,27 +30,27 @@ public class EntityMonorail {
|
||||
_weight = weight <= 0 ? rnd.nextInt(100)+500 : weight;
|
||||
_bodyColor = bodyColor;
|
||||
|
||||
Step = _speed * 100/ (float)_weight;
|
||||
Step = _speed * 100/ (int)_weight;
|
||||
}
|
||||
|
||||
public String[] GetStringRepresentation()
|
||||
{
|
||||
return new String[]{"EntityMonorail", _speed.toString(), _weight.toString(), colorToHexString(_bodyColor)};
|
||||
}
|
||||
Integer speed = _speed;
|
||||
Float weight = _weight;
|
||||
|
||||
return new String[]{"EntityMonorail", speed.toString(), weight.toString(), colorToHexString(_bodyColor)};
|
||||
}
|
||||
public static EntityMonorail CreateEntityMonorail(String[] strs)
|
||||
{
|
||||
if (strs.length != 6 || !Objects.equals(strs[0], "EntityMonorail"))
|
||||
if (!Objects.equals(strs[0], "EntityMonorail"))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new EntityMonorail(Integer.parseInt(strs[1]), Float.parseFloat(strs[2]), hexStringToColor(strs[3]));
|
||||
}
|
||||
|
||||
public static String colorToHexString(Color color) {
|
||||
return String.format("#%02x%02x%02x", color.getRed(), color.getGreen(), color.getBlue());
|
||||
}
|
||||
|
||||
public static Color hexStringToColor(String hexString) {
|
||||
return Color.decode(hexString);
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ public class FormAdditionalCollection extends JFrame {
|
||||
private JButton buttonGenerate = new JButton("Создать");
|
||||
private JButton buttonGoToCollection = new JButton("В коллекцию");
|
||||
private JList<String> listEntity = new JList<String>();
|
||||
private JList<String> listWheels = new JList<String>();
|
||||
private JList<String> listEngines = new JList<String>();
|
||||
public FormAdditionalCollection() {
|
||||
setTitle("Случайные монорельсы");
|
||||
setMinimumSize(new Dimension(970,310));
|
||||
@ -45,7 +45,7 @@ public class FormAdditionalCollection extends JFrame {
|
||||
buttonGenerate.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
_drawingMonorail = _additionalCollection.CreateAdditionalCollectionMonorail();
|
||||
_drawingMonorail = _additionalCollection.CreateAdditionalCollectionStormtrooper();
|
||||
_drawingMonorail.SetPictureSize(getWidth(), getHeight());
|
||||
_drawingMonorail.SetPosition(360,30);
|
||||
_canvasMonorail._drawingMonorail = _drawingMonorail;
|
||||
@ -60,11 +60,11 @@ public class FormAdditionalCollection extends JFrame {
|
||||
buttonGoToCollection.setBounds(830,200,120,60);
|
||||
buttonGenerate.setBounds(830, 130, 120, 60);
|
||||
listEntity.setBounds(10,200,400,60);
|
||||
listWheels.setBounds(420,200,400,60);
|
||||
listEngines.setBounds(420,200,400,60);
|
||||
add(buttonGenerate);
|
||||
add(buttonGoToCollection);
|
||||
add(listEntity);
|
||||
add(listWheels);
|
||||
add(listEngines);
|
||||
add(_canvasMonorail);
|
||||
setVisible(true);
|
||||
}
|
||||
@ -128,6 +128,6 @@ public class FormAdditionalCollection extends JFrame {
|
||||
data2[i] = ToString(wheels);
|
||||
}
|
||||
listEntity.setListData(data1);
|
||||
listWheels.setListData(data2);
|
||||
listEngines.setListData(data2);
|
||||
}
|
||||
}
|
@ -37,6 +37,14 @@ public class FormMonorailCollection extends JFrame{
|
||||
private JButton RefreshButton = new JButton("Обновить");
|
||||
private JComboBox ComboBoxCollections = new JComboBox(new String[]{"", "Хранилище"});
|
||||
private JFormattedTextField TextField;
|
||||
private JFormattedTextField MaskedTextField;
|
||||
private JMenuBar menuBar = new JMenuBar();
|
||||
private JMenu fileMenu = new JMenu("File");
|
||||
private JMenuItem loadItem = new JMenuItem("Load");
|
||||
private JMenuItem saveItem = new JMenuItem("Save");
|
||||
private JMenuItem loadCollection = new JMenuItem("Load coll");
|
||||
private JMenuItem saveCollection = new JMenuItem("Save coll");
|
||||
|
||||
public FormMonorailCollection(String title, Dimension dimension) {
|
||||
this.title = title;
|
||||
this.dimension = dimension;
|
||||
@ -217,6 +225,37 @@ public class FormMonorailCollection extends JFrame{
|
||||
}
|
||||
});
|
||||
|
||||
saveItem.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
SaveFile();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
loadItem.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
LoadFile();
|
||||
}
|
||||
});
|
||||
|
||||
saveCollection.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
System.out.println("Save coll");
|
||||
SaveCollection();
|
||||
}
|
||||
});
|
||||
|
||||
loadCollection.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
System.out.println("Load coll");
|
||||
LoadCollection();
|
||||
}
|
||||
});
|
||||
|
||||
buttonCreateCompany.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
@ -257,6 +296,14 @@ public class FormMonorailCollection extends JFrame{
|
||||
}
|
||||
});
|
||||
|
||||
fileMenu.add(loadItem);
|
||||
fileMenu.add(saveItem);
|
||||
fileMenu.add(loadCollection);
|
||||
fileMenu.add(saveCollection);
|
||||
fileMenu.addSeparator();
|
||||
menuBar.add(fileMenu);
|
||||
setJMenuBar(menuBar);
|
||||
|
||||
ButtonGroup radioButtonsGroup = new ButtonGroup();
|
||||
JLabel labelCollectionName = new JLabel("Название коллекции");
|
||||
radioButtonsGroup.add(radioButtonMassive);
|
||||
@ -301,6 +348,60 @@ public class FormMonorailCollection extends JFrame{
|
||||
add(RefreshButton);
|
||||
setVisible(true);
|
||||
}
|
||||
private String SaveWindow() {
|
||||
FileDialog fileDialog = new FileDialog(this, "Save File", FileDialog.SAVE);
|
||||
fileDialog.setVisible(true);
|
||||
String directory = fileDialog.getDirectory();
|
||||
String file = fileDialog.getFile();
|
||||
if (directory == null || file == null) return null;
|
||||
return directory + file;
|
||||
}
|
||||
private void SaveFile() {
|
||||
String filename = SaveWindow();
|
||||
if (_storageCollection.SaveData(filename)) {
|
||||
JOptionPane.showMessageDialog(null, "Сохранено");
|
||||
}
|
||||
else JOptionPane.showMessageDialog(null, "Ошибка сохранения");
|
||||
}
|
||||
private void SaveCollection() {
|
||||
String filename = SaveWindow();
|
||||
if (filename == null) {
|
||||
JOptionPane.showMessageDialog(null, "Файл не выбран");
|
||||
return;
|
||||
}
|
||||
if (listBoxCollection.getSelectedIndex() < 0 || listBoxCollection.getSelectedValue() == null) {
|
||||
JOptionPane.showMessageDialog(null, "Коллекция не выбрана");
|
||||
}
|
||||
if (_storageCollection.SaveOneCollection(filename, listBoxCollection.getSelectedValue().toString())) {
|
||||
JOptionPane.showMessageDialog(null, "Коллекция сохранена");
|
||||
}
|
||||
else JOptionPane.showMessageDialog(null, "Ошибка сохранения");
|
||||
}
|
||||
private String LoadWindow() {
|
||||
FileDialog fileDialog = new FileDialog(this, "Save File", FileDialog.LOAD);
|
||||
fileDialog.setVisible(true);
|
||||
String directory = fileDialog.getDirectory();
|
||||
String file = fileDialog.getFile();
|
||||
if (directory == null || file == null) return null;
|
||||
return directory + file;
|
||||
}
|
||||
private void LoadFile() {
|
||||
String filename = LoadWindow();
|
||||
if (_storageCollection.LoadData(filename)) {
|
||||
JOptionPane.showMessageDialog(null, "Загрузка прошла успешно");
|
||||
RerfreshListBoxItems();
|
||||
}
|
||||
else JOptionPane.showMessageDialog(null, "Не загрузилось");
|
||||
|
||||
}
|
||||
private void LoadCollection() {
|
||||
String filename = LoadWindow();
|
||||
if (_storageCollection.LoadOneCollection(filename)) {
|
||||
JOptionPane.showMessageDialog(null, "Коллекция загружена");
|
||||
RerfreshListBoxItems();
|
||||
}
|
||||
else JOptionPane.showMessageDialog(null, "Не загрузилось");
|
||||
}
|
||||
private void RerfreshListBoxItems() {
|
||||
DefaultListModel<String> list = new DefaultListModel<String>();
|
||||
for (String name : _storageCollection.Keys()) {
|
||||
|
@ -35,9 +35,9 @@ public class FormMonorailConfig extends JFrame {
|
||||
private JLabel labelBodyColor = new JLabel("Основной цвет", SwingConstants.CENTER);
|
||||
private JLabel labelAdditionalColor = new JLabel("Дополнительный цвет", SwingConstants.CENTER);
|
||||
private JLabel labelWheels = new JLabel("Тип двигателей",SwingConstants.CENTER);
|
||||
private JLabel labelDefaultEngines = new JLabel("Классические",SwingConstants.CENTER);
|
||||
private JLabel labelOvalEngines = new JLabel("Овальные", SwingConstants.CENTER);
|
||||
private JLabel labelTriangleEngines = new JLabel("Треугольные", SwingConstants.CENTER);
|
||||
private JLabel labelDefaultWheels = new JLabel("Классические",SwingConstants.CENTER);
|
||||
private JLabel labelOvalOrnament = new JLabel("Овальные", SwingConstants.CENTER);
|
||||
private JLabel labelTriangleOrnament = new JLabel("Треугольные", SwingConstants.CENTER);
|
||||
|
||||
private JSpinner spinnerSpeed = new JSpinner();
|
||||
private JSpinner spinnerWeight = new JSpinner();
|
||||
@ -121,9 +121,9 @@ public class FormMonorailConfig extends JFrame {
|
||||
labelModernMonorail.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
|
||||
labelBodyColor.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
|
||||
labelAdditionalColor.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
|
||||
labelDefaultEngines.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
|
||||
labelOvalEngines.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
|
||||
labelTriangleEngines.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
|
||||
labelDefaultWheels.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
|
||||
labelOvalOrnament.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
|
||||
labelTriangleOrnament.setBorder(BorderFactory.createLineBorder(Color.BLACK, 2));
|
||||
MouseAdapter labelObjectsMouseDown = new MouseAdapter() {
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {
|
||||
@ -146,17 +146,17 @@ public class FormMonorailConfig extends JFrame {
|
||||
labelModernMonorail.addMouseListener(labelObjectsMouseDown);
|
||||
labelModernMonorail.setTransferHandler(labelObjectsTransferHandler);
|
||||
|
||||
MouseAdapter labelEnginesMouseDown = new MouseAdapter() {
|
||||
MouseAdapter labelWheelsMouseDown = new MouseAdapter() {
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {
|
||||
((JLabel) e.getComponent()).getTransferHandler().exportAsDrag(((JLabel) e.getComponent()), e, TransferHandler.COPY);
|
||||
}
|
||||
};
|
||||
|
||||
labelDefaultEngines.addMouseListener(labelEnginesMouseDown);
|
||||
labelOvalEngines.addMouseListener(labelEnginesMouseDown);
|
||||
labelTriangleEngines.addMouseListener(labelEnginesMouseDown);
|
||||
labelDefaultEngines.setTransferHandler(new TransferHandler() {
|
||||
labelDefaultWheels.addMouseListener(labelWheelsMouseDown);
|
||||
labelOvalOrnament.addMouseListener(labelWheelsMouseDown);
|
||||
labelTriangleOrnament.addMouseListener(labelWheelsMouseDown);
|
||||
labelDefaultWheels.setTransferHandler(new TransferHandler() {
|
||||
@Override
|
||||
public int getSourceActions(JComponent c) {return TransferHandler.COPY;}
|
||||
|
||||
@ -165,7 +165,7 @@ public class FormMonorailConfig extends JFrame {
|
||||
return new WheelsTransferable(new DrawingWheels());
|
||||
}
|
||||
});
|
||||
labelOvalEngines.setTransferHandler(new TransferHandler() {
|
||||
labelOvalOrnament.setTransferHandler(new TransferHandler() {
|
||||
@Override
|
||||
public int getSourceActions(JComponent c) {return TransferHandler.COPY;}
|
||||
|
||||
@ -174,7 +174,7 @@ public class FormMonorailConfig extends JFrame {
|
||||
return new WheelsTransferable(new DrawOrnamentOval());
|
||||
}
|
||||
});
|
||||
labelTriangleEngines.setTransferHandler(new TransferHandler() {
|
||||
labelTriangleOrnament.setTransferHandler(new TransferHandler() {
|
||||
@Override
|
||||
public int getSourceActions(JComponent c) {return TransferHandler.COPY;}
|
||||
|
||||
@ -300,12 +300,8 @@ public class FormMonorailConfig extends JFrame {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
if (_drawingMonorail == null) return;
|
||||
DrawingMonorail copyDrawingMonorail;
|
||||
if (_drawingMonorail instanceof DrawingModernMonorail)
|
||||
copyDrawingMonorail = new DrawingModernMonorail((EntityModernMonorail) _drawingMonorail.getMonorail(), _drawingMonorail.getWheels());
|
||||
else
|
||||
copyDrawingMonorail = new DrawingMonorail(_drawingMonorail.getMonorail(), _drawingMonorail.getWheels());
|
||||
company._collection.Insert(copyDrawingMonorail);
|
||||
|
||||
company._collection.Insert(_drawingMonorail);
|
||||
FormMonorailCollection.canvasShow();
|
||||
dispose();
|
||||
}
|
||||
@ -330,9 +326,9 @@ public class FormMonorailConfig extends JFrame {
|
||||
labelBodyColor.setBounds(500,5,100, 40);
|
||||
labelAdditionalColor.setBounds(605,5,170,40);
|
||||
labelWheels.setBounds(225,190,150,15);
|
||||
labelDefaultEngines.setBounds(140, 210, 100, 40);
|
||||
labelOvalEngines.setBounds(250, 210, 100,40);
|
||||
labelTriangleEngines.setBounds(360,210,100,40);
|
||||
labelDefaultWheels.setBounds(140, 210, 100, 40);
|
||||
labelOvalOrnament.setBounds(250, 210, 100,40);
|
||||
labelTriangleOrnament.setBounds(360,210,100,40);
|
||||
labelColor.setBounds(200,10,50,15);
|
||||
panelColorRed.setBounds(200, 30, 40, 40);
|
||||
panelColorGreen.setBounds(250, 30, 40,40);
|
||||
@ -354,10 +350,10 @@ public class FormMonorailConfig extends JFrame {
|
||||
add(labelColor);
|
||||
add(labelBodyColor);
|
||||
add(labelAdditionalColor);
|
||||
add(labelDefaultEngines);
|
||||
add(labelDefaultEngines);
|
||||
add(labelOvalEngines);
|
||||
add(labelTriangleEngines);
|
||||
add(labelDefaultWheels);
|
||||
add(labelDefaultWheels);
|
||||
add(labelOvalOrnament);
|
||||
add(labelTriangleOrnament);
|
||||
add(spinnerSpeed);
|
||||
add(spinnerWeight);
|
||||
add(spinnerNumberOfWheels);
|
||||
|
@ -13,6 +13,8 @@ public class DrawingWheels implements IDrawingWheels{
|
||||
_ornament = ornament;
|
||||
}
|
||||
|
||||
public IOrnament GetOrnament() {return _ornament;}
|
||||
|
||||
public void SetCountWheels(int Count){
|
||||
for (CountWheels temp: CountWheels.values())
|
||||
if (temp.getCountWheels() == Count){
|
||||
|
@ -4,6 +4,7 @@ import java.awt.*;
|
||||
|
||||
public interface IDrawingWheels {
|
||||
public void SetOrnament(IOrnament ornament);
|
||||
IOrnament GetOrnament();
|
||||
public void SetCountWheels(int Count);
|
||||
public int getCountWheels();
|
||||
public void DrawWheels(Graphics2D g, int startPosX[], int startPosY, Color color);
|
||||
|
Loading…
Reference in New Issue
Block a user