Re: Sendungsliste - Navigation
Verfasst: 28 Jun 2015, 18:56
Für die Zeilenanzahl sollte doch eigentlich ein simple "y++" reichen, oder?
Das klappt nämlich nicht.
Das klappt nämlich nicht.
TV-Browser - Eine freie TV-Zeitschrift / A free EPG
https://hilfe.tvbrowser.org/
Code: Alles auswählen
FormLayout layout = new FormLayout("default,3dlu,100dlu:grow,3dlu,default","default,3dlu,fill:default:grow");
setLayout(layout);
setOpaque(false);
if(type == TYPE_NAME_AND_PROGRAM_FILTER) {
layout.insertRow(1, RowSpec.decode("default"));
layout.insertRow(2, RowSpec.decode("3dlu"));
}
Code: Alles auswählen
layout.insertRow(1, RowSpec.decode("default"));
layout.insertRow(2, RowSpec.decode("3dlu"));
Code: Alles auswählen
private void createGUI(int type, boolean showNumberOfPrograms, int startType, ProgramFilter startFilter) {
FormLayout layout = new FormLayout("default,3dlu,100dlu:grow,3dlu,default","default,3dlu,fill:default:grow");
setLayout(layout);
setOpaque(false);
if(type == TYPE_NAME_AND_PROGRAM_FILTER) {
layout.insertRow(1, RowSpec.decode("default"));
layout.insertRow(2, RowSpec.decode("3dlu"));
layout.insertRow(1, RowSpec.decode("default"));
layout.insertRow(2, RowSpec.decode("3dlu"));
layout.insertRow(1, RowSpec.decode("default"));
layout.insertRow(2, RowSpec.decode("3dlu"));
}
int y = 1;
Channel[] subscribedChannels = Plugin.getPluginManager().getSubscribedChannels();
mChannelBox = new WideComboBox();
mChannelBox.addItem("Alle");
for (int i = 0; i < subscribedChannels .length; i++) {
mChannelBox.addItem (subscribedChannels[i]);
}
if (mSelectedChannel != null) {
mChannelBox.setSelectedItem(mSelectedChannel);
}
mChannelBoxLabel = new JLabel("Sender");
add(mChannelBoxLabel , CC.xy(1, y));
add(mChannelBox , CC.xyw(3, y, 3));
y+=2;
mProgramFilterBox = new WideComboBox();
if(type == TYPE_NAME_AND_PROGRAM_FILTER || type == TYPE_PROGRAM_ONLY_FILTER) {
mProgramFilterBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED) {
filterPrograms((ProgramFilter)mProgramFilterBox.getSelectedItem());
scrollToFirstNotExpiredIndex(false);
}
}
});
fillProgramFilterBox(startType, startFilter);
JButton refresh = new JButton(TVBrowserIcons.refresh(TVBrowserIcons.SIZE_SMALL));
refresh.setToolTipText(LOCALIZER.msg("refresh", "Refresh list with current filter"));
refresh.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
filterPrograms((ProgramFilter)mProgramFilterBox.getSelectedItem());
}
});
long refreshDureation = 10*60*1000; // refresh duration in milliseconds set to 10 minutes
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
filterPrograms((ProgramFilter)mProgramFilterBox.getSelectedItem());
}
}, refreshDureation, refreshDureation);
mProgramFilterLabel = new JLabel(LOCALIZER.msg("filterPrograms", "Program filter:"));
add(mProgramFilterLabel, CC.xy(1, y));
add(mProgramFilterBox, CC.xy(3, y));
add(refresh, CC.xy(5, y));
y+=2;
}
else {
mProgramFilterBox.addItem(FilterManagerImpl.getInstance().getAllFilter());
}
if(type == TYPE_NAME_AND_PROGRAM_FILTER || type == TYPE_NAME_ONLY_FILTER) {
mTitleFilterBox = new WideComboBox();
mTitleFilterBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED) {
filterPrograms((ProgramFilter)mTitleFilterBox.getSelectedItem(), true);
scrollToFirstNotExpiredIndex(false);
}
}
});
mTitleFilterLabel = new JLabel(LOCALIZER.msg("filterTitles","Title filter:"));
add(mTitleFilterLabel, CC.xy(1, y));
add(mTitleFilterBox, CC.xyw(3, y, 3));
y+=2;
}
if(showNumberOfPrograms) {
layout.insertRow(y, RowSpec.decode("default"));
layout.insertRow(y+1, RowSpec.decode("3dlu"));
mNumberLabel = new JLabel(LOCALIZER.msg("numberOfPrograms", "Number of shown programs: {0}", 0));
add(mNumberLabel, CC.xyw(1, y, 5));
}
mProgramListScrollPane = new JScrollPane(mProgramList);
mProgramListScrollPane.setBorder(null);
y+=4;
add(mProgramListScrollPane, CC.xyw(1, y, 5));
}
Code: Alles auswählen
public void setSelectedChannel(Channel selectedChannel) {
mSelectedChannel = selectedChannel;
}
Code: Alles auswählen
@Override
public void scrolledToChannel(Channel channel) {
FilterableProgramListPanel filterableProgramListPanel = new FilterableProgramListPanel(0, null, false, false, null, 0);
filterableProgramListPanel.setSelectedChannel(channel);
}
Code: Alles auswählen
@Override
public void filterSelected(ProgramFilter filter) {
if(mMangePanel != null && reactOnFilterChange()) {
mMangePanel.selectFilter(filter);
}
}