📄 clientpanel.java
字号:
final Collection<Fleet> updates = getGameDataManager()
.getFleetsToUpdate();
for (final Fleet f : updates)
{
if (f != null)
{
j3DPanel.fleetPositionChanged(f);
assert LOG.debug("updated fleet :" + f.getKey() + "("
+ f.getSize() + ")" + f.getPosition());
}
}
}
private void hideFleets( final Collection<Fleet> tohide)
{
for (final Fleet f : tohide)
{
if (f != null)
{
j3DPanel.hideFleet(f);
assert LOG.debug("hidden fleet :" + f.getKey() + "("
+ f.getSize() + ")" + f.getPosition());
}
else
{
LOG.warn("fleet to hide is null!!!");
}
}
}
private class Refresher extends Thread
{
private boolean finished;
private final RefreshTask task = new RefreshTask();
/**
* {@inheritDoc}
*/
@Override
public void run()
{
while (!isFinished())
{
try
{
SwingUtilities.invokeAndWait(task);
Thread.sleep(1000);
}
catch (final InterruptedException ie)
{
// on purpose
}
catch (final InvocationTargetException ite)
{
LOG.error(ite, ite);
throw new RuntimeException(ite);
}
}
}
/**
* Returns the finished.
*
* @return the value of finished
*/
public final synchronized boolean isFinished()
{
return finished;
}
/**
* Sets the value of finished.
*
* @param finished
* The finished to set.
*/
public final synchronized void setFinished(final boolean finished)
{
this.finished = finished;
}
private class RefreshTask implements Runnable
{
public void run()
{
// added planets cause some problems
final Collection<Planet> addedPlanets = getGameDataManager()
.getAddedPlanets();
gameDataManager.refresh();
planetsTableModel.refresh(addedPlanets);
getFleetsModel().refresh();
getPlayersTableModel().refresh();
planetViewPanel.updateStatus();
toPlanetViewPanel.updateStatus();
updateRealmStatistics();
refresh3DView(addedPlanets);
showReports();
}
}
}
public void showReports()
{
final Collection<BattleReportVO> reports = getGameDataManager().getBattleReports();
for ( final BattleReportVO battle : reports)
{
logPlayerText( "--- battle at:" + getGameDataManager().
getPlanet(battle.getPlanetKey()).getName() + " ---");
logPlayerText(battle.toString());
}
if ( getGameDataManager().getRealm().getStatus() == PlayerStatus.DEFEATED)
{
markDefeated();
}
else
{
markNotDefeated();
}
}
private void markDefeated()
{
if (!this.defeated)
{
this.defeated = true;
logPlayerText("You have lost the game!!!");
}
}
private void markNotDefeated()
{
this.defeated = false;
}
public final void logPlayerText(final String text)
{
this.logsTextArea.append( text);
this.logsTextArea.append( "\n");
this.logsTextArea.setCaretPosition( logsTextArea.getText().length() - 1);
}
public Planet getFromPlanet()
{
return fromPlanet;
}
public void setFromPlanet(final Planet fromPlanet)
{
this.fromPlanet = fromPlanet;
if (fromPlanet != null)
{
// this.fromLabel.setText("FROM:" + fromPlanet.getName());
fleetSlider.setMaximum(fromPlanet.getHomeFleetSize());
fleetSlider.setMinimum(0);
fleetSlider.setValue(fromPlanet.getHomeFleetSize());
fleetSlider.setEnabled(true);
fleetSizeTextField.setEnabled(true);
this.planetViewPanel.setPlanet(fromPlanet);
getPlanetsModel().setSelectedPlanet(fromPlanet);
}
else
{
// this.fromLabel.setText("FROM: <select>");
fleetSlider.setEnabled(false);
fleetSizeTextField.setEnabled(false);
this.planetViewPanel.setPlanet(null);
getPlanetsModel().setSelectedPlanet(null);
}
}
public Planet getToPlanet()
{
return toPlanet;
}
public void setToPlanet(final Planet toPlanet)
{
this.toPlanet = toPlanet;
if (toPlanet != null)
{
// this.toLabel.setText( "TO:" + toPlanet.getName());
this.toPlanetViewPanel.setPlanet(toPlanet);
if (getGameDataManager().isOwn(getFromPlanet()))
{
moveButton.setEnabled(true);
}
this.distanceLabel.setText(getGameDataManager()
.getDistanceAsString(getFromPlanet(), getToPlanet()));
}
else
{
// this.toLabel.setText("TO: <select>");
moveButton.setEnabled(false);
this.toPlanetViewPanel.setPlanet(null);
this.distanceLabel.setText("");
}
}
public void onPlanetSelected(final Planet p, final MouseButton button)
{
final Planet planet = getGameDataManager().getPlanet(p.getKey());
// choosePlanet(planet);
if (button == MouseButton.LEFT)
{
setFromPlanet(planet);
setToPlanet(null);
}
else if (button == MouseButton.RIGHT)
{
if (getFromPlanet() != null)
{
setToPlanet(planet);
}
}
}
private TableColumnModel getFleetsTableColumnModel()
{
if (this.fleetsColumnModel == null)
{
this.fleetsColumnModel = this.fleetsTableModel.getColumnModel();
}
return this.fleetsColumnModel;
}
private TableColumnModel getPlanetsTableColumnModel()
{
if (this.planetsColumnModel == null)
{
this.planetsColumnModel = this.planetsTableModel.getColumnModel();
}
return this.planetsColumnModel;
}
private JTableHeader getFleetsTableHeader()
{
if (this.fleetsTableHeader == null)
{
this.fleetsTableHeader = new JTableHeader(
getFleetsTableColumnModel());
}
return this.fleetsTableHeader;
}
private JTableHeader getPlanetsTableHeader()
{
if (this.planetsTableHeader == null)
{
this.planetsTableHeader = new JTableHeader(
getPlanetsTableColumnModel());
}
return this.planetsTableHeader;
}
private JTableHeader getPlayersTableHeader()
{
return getPlayersTableModel().getTableHeader();
}
private final class FleetsTableMouseListener extends MouseAdapter
{
public void mouseClicked(final java.awt.event.MouseEvent mouseEvent)
{
final int ind = fleetsTable.columnAtPoint(mouseEvent.getPoint());
// System.out.println("header clicked:" + ind);
if (MouseButton.fromEvent(mouseEvent) == MouseButton.LEFT)
{
getFleetsModel().changeOrder(ind);
}
else if (MouseButton.fromEvent(mouseEvent) == MouseButton.RIGHT)
{
getFleetsModel().resetOrder(ind);
}
}
}
private final class PlanetsTableMouseListener extends MouseAdapter
{
public void mouseClicked(final java.awt.event.MouseEvent mouseEvent)
{
final int ind = planetsTable.columnAtPoint(mouseEvent.getPoint());
// System.out.println("header clicked:" + ind);
if (MouseButton.fromEvent(mouseEvent) == MouseButton.LEFT)
{
getPlanetsModel().changeOrder(ind);
}
else if (MouseButton.fromEvent(mouseEvent) == MouseButton.RIGHT)
{
getPlanetsModel().resetOrder(ind);
}
}
}
private final class PlayersTableMouseListener extends MouseAdapter
{
public void mouseClicked(final java.awt.event.MouseEvent mouseEvent)
{
final int ind = playersTable.columnAtPoint(mouseEvent.getPoint());
// System.out.println("header clicked:" + ind);
if (MouseButton.fromEvent(mouseEvent) == MouseButton.LEFT)
{
getPlayersTableModel().changeOrder(ind);
}
else if (MouseButton.fromEvent(mouseEvent) == MouseButton.RIGHT)
{
getPlayersTableModel().resetOrder(ind);
}
}
}
private void updateRealmStatistics()
{
final Realm realm = getGameDataManager().getRealm();
this.ownRealmNameTextField.setText(realm.getName());
this.shipsCntTextField.setText(String.valueOf(realm.getTotalShips()));
this.totalProductivityTextField.setText(String.valueOf(realm
.getTotalProductivity()));
this.planetsCntTextField.setText(String.valueOf(realm
.getOwnedPlanetsNumber()));
}
public PlayersTableModel getPlayersTableModel()
{
if (this.playersTableModel == null)
{
this.playersTableModel = new PlayersTableModel(getGameDataManager());
}
return this.playersTableModel;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -